我在这样的文件中有一个字符串:
"Value1=[random number]"
在这个字符串之后,我想添加另一个字符串,特别是:
"Value2=100"
如果我尝试使用:
sed '/Value1=/a Value2=100' myfile.txt
它会失败,因为我没有包括Value1 = [某个随机数]的事实。
如何添加Value1 =随机数和Value2应添加到此字符串的条件?
答案 0 :(得分:1)
sed '/Value1=[0-9]\+/a Value2=100' myfile.txt
[0-9]\+
将匹配任何数字字符串。例如,在我的cygwin上,GNU sed 4.2.2,
echo Value1=42 | sed '/Value1=[0-9]\+/a Value2=43'
产生
Value1=42
Value2=43
修改:如果该号码可能是或不是双引号,请使用:
sed '/Value1="\?[0-9]\+"\?/a Value2=43'
"\?
是可选的双引号。
答案 1 :(得分:1)
这样的事情:
$ sed 's,\(Value1=200\),\1 Value2=100,' myfile.txt
结果:
Value1=200 Value2=100
答案 2 :(得分:1)
echo '"Value1=400"' | sed 's/"Value1=.*"/&\n"Value2=100"/'
输出:
"Value1=400" "Value2=100"
或者:
echo '"Value1=400"' | sed 's/"Value1=.*"/& "Value2=100"/'
输出:
"Value1=400" "Value2=100"