[英]bash sed replace a line number in a file containing a colon
我正在使用RHEL 7.3。 myfile.txt的第12行如下所示:
圖片:/ currentimage / myimage
我需要一個bash腳本將其更改為:
圖片:/ newimage / otherimage
我嘗試這樣做:
sed -i '12s/image: /currentimage/myimage/image: /newimage/otherimage/' ./myfile
但是失敗了:sed:`s'的未知選項
任何幫助,不勝感激。
TIA。
您將/
用作sed
分隔符,並且在路徑中使用它。 嘗試使用|
作為您的分隔符。
sed -i '12s|image: /currentimage/myimage|image: /newimage/otherimage|' ./myfile
此外,您可以逃脫每個/
文件路徑像這樣\\/
。
如果您可以使用Awk
,則使用代表要處理的行的NR
變量在第12行移動非常簡單,
awk 'NR==12{$2="/newimage/otherimage/"}1' myfile > tmp && mv tmp myfile
> tmp && mv tmp myfile
部分等效於sed
的-i
選項,以間接方式來就地修改文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.