簡體   English   中英

用bash腳本替換一行

[英]replace a line with bash script

我正在嘗試替換文件的一行。 我用了

line=" abc"
sed -i "3c ${line}" test.txt

它可以工作,但是第一個空間沒有顯示。 我希望test.txt中的第3行是

 abc

而不是

abc

注意abc前面有一個空格。 感謝您的任何建議!

line="\ abc"
sed -i "3c\
$line" test.txt

逃脫空間將使其不被修剪。

sed替換命令的語法為's/match/replacement/' 為了找到並替換它,您需要執行以下操作:

line=" abc"
sed -i "s/^abc$/$line/" test.txt

字符^$分別是該行開頭和結尾的正則表達式元字符。 因此, ^abc$將僅匹配完全包含該模式的行,然后將其替換為abc並帶有空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM