sed命令簡單使用 D命令 結束本輪迴圈

2021-06-03 15:10:55 字數 1191 閱讀 2029

為了驗證d命令後的語句是否會執行,寫了如下例項,(其中=表示輸出當前行號,=;=表示輸出當前行號兩次):

[work@ test_sed]$  seq -f"%05g" 1 6 | sed -n ':a;n;p;=;d;n;p;=;=;ba'

00001

00002

200002

00003

300003

00004

400004

00005

500005

00006

6可以發現行號並沒有連續輸出兩次,所以語句執行到d後,後面的「n;p;=;=;ba」並沒有執行,去掉上面命令中第乙個n,執行如下:

[work@ test_sed]$  seq -f"%05g" 1 6 | sed -n ':a;p;=;d;n;p;=;=;ba'

00001

100002

200003

300004

400005

500006

6可以發現,語句執行到d後,後面的「n;p;=;=;ba」並沒有執行,去掉前面命令中的d,執行如下:

[work@ test_sed]$  seq -f"%05g" 1 6 | sed -n ':a;n;p;=;n;p;=;=;ba' 

00001

00002

200001

00002

0000333

00001

00002

00003

00004

400001

00002

00003

00004

0000555

00001

00002

00003

00004

00005

00006

6去掉d命令後,可以發現後面的「n;p;=;=;ba」執行了。所以,d命令將結束本輪sed語句,開始下乙個迴圈。d命令後的語句將不再執行。另,d(delete pattern space.  start next cycle.)命令也是一樣:

[work@ test_sed]$ seq -f"%05g" 1 6 | sed -n ':a;n;p;=;d;n;p;=;=;ba'

00001

00002

200003

00004

400005

00006

6

sed命令使用簡單記錄

sed s pattern replace string file sed.txt中對每行的第乙個lifeng用lf替換 sed s lifeng lf sed.txt 原始檔內容不會變的 要替換所有內容,命令尾部加引數g sed s lifeng lf g sed.txt 要從每行的第二處內容進行...

sed命令使用

sed命令使用 常用選項 n 使用安靜模式,在一般情況所有的 stdin 都會輸出到螢幕上,加入 n 後只列印被 sed 特殊處理的行 e 多重編輯,且命令順序會影響結果 f 指定乙個 sed 指令碼檔案到命令列執行,r sed 使用擴充套件正則 i 直接修改文件讀取的內容,不在螢幕上輸出 sed操...

sed命令使用

常用選項 n 使用安靜模式,在一般情況所有的 stdin 都會輸出到螢幕上,加入 n 後只列印被 sed 特殊處理的行 e 多重編輯,且命令順序會影響結果 f 指定乙個 sed 指令碼檔案到命令列執行,r sed 使用擴充套件正則 i 直接修改文件讀取的內容,不在螢幕上輸出 sed操作命令 sed ...