Sed 替换匹配字符串中的子字符串
我需要将Sed 替换匹配字符串中的子字符串,sed,Sed,我需要将值替换为字符串中的新值 key:value key: value key: value 得到 key:new_value key: new_value key: new_value :后面的空格数是任意的。要匹配的正则表达式是键:*value。 如何使用sed保留空格数的字符串中的value替换为new_value 为了澄清,由于键/值不同,key1:value或key:value1不匹配,因此不会更改此类字符串。请尝试- sed 's/^\(key: *\)value/\1ne
值
替换为字符串中的新值
key:value
key: value
key: value
得到
key:new_value
key: new_value
key: new_value
:
后面的空格数是任意的。要匹配的正则表达式是键:*value
。
如何使用sed保留空格数的字符串中的value
替换为new_value
为了澄清,由于键/值不同,key1:value
或key:value1
不匹配,因此不会更改此类字符串。请尝试-
sed 's/^\(key: *\)value/\1new_vale/' file
试一试-
您可以使用此
sed
匹配所有情况:
sed -E 's/^([[:blank:]]*key[[:blank:]]*:[[:blank:]]*)value([[:blank:]]|$)/\1new_value/' file
这允许在以下位置使用0个或多个空格:
- 在开始时按键之前
- 在
和键
之间:
- 介于
和值之间:
- 在
结束之前值之后
匹配空格或选项卡[[:blank:][]
sed
匹配所有情况:
sed -E 's/^([[:blank:]]*key[[:blank:]]*:[[:blank:]]*)value([[:blank:]]|$)/\1new_value/' file
这允许在以下位置使用0个或多个空格:
- 在开始时按键之前
- 在
和键
之间:
- 介于
和值之间:
- 在
结束之前值之后
匹配空格或选项卡[[:blank:][]
g
结尾处:sed-E'./g'
?但我没有/g
结尾处,不是我的否决票。回答得好。我在问是否需要“g”来处理所有匹配项,就像通常那样。@user2052436g
用于处理一行中的多个匹配项。根据您问题中的示例输入,您没有任何情况下一行上有多个匹配项,因此指定g
没有意义。如果这是错误的,那么,当然,修正你问题中的例子。没有必要在最后加入g
:sed-E'../g'
?但是我没有/g
,不是我的反对票。回答得好。我在问是否需要“g”来处理所有匹配项,就像通常那样。@user2052436g
用于处理一行中的多个匹配项。根据您问题中的示例输入,您没有任何情况下一行上有多个匹配项,因此指定g
没有意义。如果这是错误的,那么,当然,修复问题中的示例。不需要在结尾处添加g
:sed'../g'
?不,这里不需要拖尾g
。要了解g
的作用,请尝试以下两个命令:foo=“aaaa”;echo$foo|sed's/a/X';echo$foo | sed's/a/X/g'
结尾的g
中不需要:sed'…/g'
?不需要,此处不需要尾随g
。要了解g
的作用,请尝试以下两个命令:foo=“aaaa”;echo$foo|sed's/a/X';echo$foo|sed's/a/X/g'