sed 从字符串中删除具有不同值的特定键
sed remove specific key with varying value from string
假设我有一个字符串:
ap=test:::bc=exam:::dc=comic:::mp=calc:::
读取一个linux框,我需要删除bc=exam
,键总是相同的,但值可以是任何值,字符串或数字,以及位置键值对可以在字符串中的任何位置。
我必须
sed -e 's/:::bc=\(.*:::\)*//'
只删除键和分隔符。
或
sed -e 's/:::bc=.*\(:::\)*//'
正在删除密钥中的所有内容。
提前致谢。
由于您的值不包含分号,您可以将它们与否定括号表达式匹配,[^:]*
:
sed 's/:::bc=[^:]*//' file
:::bc=[^:]*
匹配 :::bc
,然后匹配除冒号以外的任何 0+ 个字符。
假设我有一个字符串:
ap=test:::bc=exam:::dc=comic:::mp=calc:::
读取一个linux框,我需要删除bc=exam
,键总是相同的,但值可以是任何值,字符串或数字,以及位置键值对可以在字符串中的任何位置。
我必须
sed -e 's/:::bc=\(.*:::\)*//'
只删除键和分隔符。
或
sed -e 's/:::bc=.*\(:::\)*//'
正在删除密钥中的所有内容。
提前致谢。
由于您的值不包含分号,您可以将它们与否定括号表达式匹配,[^:]*
:
sed 's/:::bc=[^:]*//' file
:::bc=[^:]*
匹配 :::bc
,然后匹配除冒号以外的任何 0+ 个字符。