我有像
这样的要求cat File
cd-car~1~3
我想用$ string1替换cd-car我使用下面的代码
$string1=cd-p&c
sed -i "s/cd-car~/$string1~/g' File
我收到以下输出
cat File
~1~3
请帮帮我
答案 0 :(得分:2)
引用cd-p&c
。否则,执行c
命令;并且没有任何内容设置为string1
变量。
$ string1=cd-p&c
[1] 6137
c: command not found
[1]+ Done string1=cd-p
$ echo $string1
$
&
字符在sed的s///
命令的替换部分中是特殊的:它被匹配模式的文本替换。如果你想要文字&
,你必须逃避它,
$ string1='cd-p\&d'
$ echo $string1
cd-p&d
$ sed -i "s/cd-car~/$string1~/g" File
$ cat File
cd-p&c~1~3
答案 1 :(得分:1)
您可以使用awk
awk '{sub(/cd-car/,"$string1")}1' file
$string1~1~3