sed从字符串中删除特定的值不同的键。

问题描述 投票:1回答:1

说我有一个字符串。

ap=test:::bc=exam:::dc=comic:::mp=calc:::

在一个linux盒子里读,我需要删除说: bc=exam键总是相同的,但值可以是任何值,字符串或数字,键值对的位置可以是字符串中的任何地方。

我得

sed -e 's/:::bc=\(.*:::\)*/\1/'

其中只删除了键和定界符。

sed -e 's/:::bc=.*\(:::\)*/\1/'

也就是把钥匙上的所有东西都去掉。

先谢谢你了。

string sed trim
1个回答
1
投票

由于你的值不包含分号,你可以用否定括号表达式来匹配。[^:]*:

sed  's/:::bc=[^:]*//' file

在线 sed 演示.

:::bc=[^:]* 匹配 :::bc 然后是除冒号以外的任何0+字符。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.