正確的語法如下。
解決方法第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」的替換文本的另一個命令,但是我可以將它存儲在變量中並使用該變量替換,但那也不起作用。 –