使用sed Unix在特定字符串后添加字符串
我在文件中有一个字符串,如下所示:使用sed Unix在特定字符串后添加字符串,unix,sed,Unix,Sed,我在文件中有一个字符串,如下所示: "Value1=[random number]" $ sed 's,\(Value1=200\),\1 Value2=100,' myfile.txt 在这个字符串之后,我想添加另一个字符串,特别是: "Value2=100" 如果我尝试使用: sed '/Value1=/a Value2=100' myfile.txt 它将失败,因为我没有包括Value1=[一些随机数]这一事实 如何将Value1=随机数和Value2添加到此字符串中 sed
"Value1=[random number]"
$ sed 's,\(Value1=200\),\1 Value2=100,' myfile.txt
在这个字符串之后,我想添加另一个字符串,特别是:
"Value2=100"
如果我尝试使用:
sed '/Value1=/a Value2=100' myfile.txt
它将失败,因为我没有包括Value1=[一些随机数]这一事实
如何将Value1=随机数和Value2添加到此字符串中
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'
“\?
是可选的双引号。类似以下内容:
"Value1=[random number]"
$ sed 's,\(Value1=200\),\1 Value2=100,' myfile.txt
结果:
Value1=200 Value2=100
输出:
"Value1=400"
"Value2=100"
"Value1=400" "Value2=100"
输出:
"Value1=400"
"Value2=100"
"Value1=400" "Value2=100"
“值1=400”“值2=100”
如果数字被引号括起来怎么办?这是否意味着它不再是一个数字,而是一个字符串?