我有一個像如何更換在sed與放置有前導空格
something
-----------
與行的文件,其中有一個領導和something
後尾空間多行字符串。我想將其替換爲
other
-------
並保留前導和尾隨空格。怎麼樣?
我有一個像如何更換在sed與放置有前導空格
something
-----------
與行的文件,其中有一個領導和something
後尾空間多行字符串。我想將其替換爲
other
-------
並保留前導和尾隨空格。怎麼樣?
sed
可以用逗號分隔的一組正則表達式匹配多行。並用c
命令替換範圍內的所有內容。要使c
命令不忽略前導空白,請在後面使用反斜槓。例如
sed -i.original '/^ something $/,/-----------$/c\ other \n-------' input-filename
這可能爲你工作(GNU SED):
sed -i '/^ something $/{:a;N;/^--*$/M!ba;s/something/other/}' file
聚集起來的開始和結束標記之間的線,然後更換了替代的所需的字符串。
N.B.使用M
標誌在多行中進行精確匹配。
sed的是個人行簡單的換人,這是所有,其他的事,你應該用awk:
$ awk 'n{$0=substr($0,1,n); n=0} {sub(/^ something $/," other "); n=length()}1' file
other
-------
,將與在任何UNIX系統中任何shell awk的任何工作。