簡體   English   中英

bash sed替換包含冒號的文件中的行號

[英]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.

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