我在shell腳本中使用sed將文件中的單詞替換爲存儲在shell變量中的句子。該句子包含空格和不同的字符。空間干擾使用shell變量的sed替換
例:
sentence="new number is > than 2.5 and < than 3.8"
sed "s|word|$sentence|g" -i Example_file.txt
行的文件中:
tile = "word - Final plot"
預期的結果:
title = "new number is > than 2.5 and < than 3.8 - Final plot"
得到的結果:
title = "new - Final plot"
正如你在上面看到的那樣,問題是sed
總是用句子的第一個單詞替換「單詞」,它會停在空格處。我嘗試了命令的不同變化:
sed 's|word|'"$sentence"'|g' -i Example_file.txt
sed "s|word|${sentence}|g" -i Example_file.txt
這似乎沒有工作。要檢查空格是否確實是我用"_"
替換它們的問題,並且當我這樣做時,sed
將替換爲使用整個句子。
任何人都知道如何強迫sed進入空間並使用整個句子?
這很難閱讀。請使用「代碼格式」按鈕來格式化您的代碼/命令行。這是一個單一的點擊! –
感謝Inian做出改變! – Inacio
你使用'GNU' sed ?.在'GNU sed version 4.2.1'上正常工作。 – Inian