正确的语法如下。
解决方法第1项:用于简单替换字符串。
sed 's/old_text/new_text/' Input_file
你不必提及echo和所有那里。
解决第二:如果你要搜索的字符串,然后做任何字符串的替换则以下可以帮助你在相同的。
sed '/look_for_string/s/old_text/new_test/' Input_file
解决方案3:如果你想改变任何字符串的多个/所有出现成一行,则以下可以通过在最后一个命令的加入摹帮助你。
sed '/look_for_string/s/old_text/new_text/g' Input_file
解决方案4:如果你想要做的变成INPUT_FILE然后自己以下可能会帮助你一样。
sed -i '/look_for_string/s/old_text/new_text/g' Input_file
EDIT1:按OP,代码应该更换一个变量的值,以行,然后下面可以帮助你在相同即可。
VAL="SINGH"
sed 's/tools/'"$VAL"'/' Input_file
EDIT2:添加一例OP用于替代的字符串的第n个号码,如果它匹配的字符串。 假设以下是我的Input_file。
cat Input_file
31116441
AAA,hi,hi,hi,hji
AAA
AA
BBB
BB
现在替换字符串(HI)的第3个发生了,从我们可以做到以下则AAA星线。
sed '/AAA/s/hi/cha_cha_ch_ch_cha/3' Input_file
31116441
AAA,hi,hi,cha_cha_ch_ch_cha,hji
AAA
AA
BBB
BB
这是一个例子,但在我的代码,我会得到来自其他命令替换文本如果替换文本包含空格,该命令也会给出相同的错误。但下面的命令完全正常。 sed's/mppu /这是替换文本/'memo.cir –
您是指您想要替换的变量值?你能否确认一下? – RavinderSingh13
不是变量值,但是它是给出“mppu”的替换文本的另一个命令,但是我可以将它存储在变量中并使用该变量替换,但那也不起作用。 –