2017-03-09 76 views
0

我有一個文件,並從此文件我試圖找到一個詞,並用另一個詞使用Bash替換它。我正在使用sed來執行此操作,請注意,我正在查找的單詞是命令的輸出。所以我試圖找到一個單詞,它是一個命令的輸出,並用另一個單詞替換它並覆蓋前一個單詞。找到變量詞並用文件替換它在文件中

這是我的代碼:

File=file.txt 
File2=file2.txt 
min=$(cat $File2 | grep word); 
sed -i 's/$min/max/g' $File 

它不產生任何錯誤,但我無法找到,以取代它的詞。當我手動鍵入單詞而不是使用變量「$ min」時,它工作得很好。所以,當我這樣做,它的工作原理:

sed -i 's/min/max/g' $File 

,但是當我這樣做,它不會:

sed -i 's/$min/max/g' $File 

我想,也許SED不接受變量作爲搜索字符串。任何想法如何我可以實現這一目標?

謝謝。

+1

的變量不是單引號內的擴張。 – Biffen

+0

謝謝你。我將它改爲雙引號,它工作。 –

回答

0

使用的SED表達雙引號,這應該工作:

sed -i "s/$min/max/g" $File 
+1

非常感謝您的幫助:) –