n命令簡單來說就是提前讀取下一行,覆蓋模型空間前一行,然後執行後續命令。然後再讀取新行,對新讀取的內容重頭執行sed
//從test檔案中取出偶數行
[root@localhost ~]# cat test
this is 1
this is 2
this is 3
this is 4
this is 5
[root@localhost ~]# sed –n 『n;p』 test
this is 2
this is 4
n命令簡單來說就是追加下一行到模式空間,同時將兩行看做一行,但是兩行之間依然含有\n換行符,然後執行後續命令。然後再讀取新行,對新讀取的內容重頭執行sed。此時,新讀取的行會覆蓋之前的行(之前的兩行已經合併為一行)
//從test檔案中讀取奇數行
[root@localhost ~]# cat test
this is 1
this is 2
this is 3
this is 4
this is 5
[root@localhost ~]# sed –n 'n;p' test //因為讀取第5行時,執行n,發現沒有第6行,不滿足,就退出,放棄p命令
this is 1
this is 3
[root@localhost ~]# sed –n '$!n;p' test
this is 1
this is 3
this is 5
讀取1,$!條件滿足(不是尾行),執行n命令,得出1\n2,執行p,列印得1,讀取3,$!條件滿足(不是尾行),執行n命令,得出3\n4,執行p,列印得3,讀取5,$!條件不滿足,跳過n,執行p,列印得5
d命令是刪除當前模式空間內容(不再傳至標準輸出),並放棄之後的命令,並對新讀取的內容,重頭執行sed
[root@localhostl ~]# cat test
this is 1
this is 2
this is 3
this is 4
this is 5
[root@localhostl ~]# sed 'n;d' test
this is 1
this is 3
this is 5
d命令是刪除當前模式空間開端至\n的內容(不在傳至標準輸出),放棄之後的命令,但是對剩餘模式空間重新執行sed
[root@localhostl ~]# cat test
this is 1
this is 2
this is 3
this is 4
this is 5
[root@localhostl ~]#sed 'n;d' aaa
this is 5
同 d 和 d 之間的區別一樣,p(大寫)命令和單行列印命令 p(小寫)不同,對於具有多行資料的緩衝區來說,它只會列印緩衝區中的第一行,也就是首個換行符之前的所有內容
[root@localhostl ~]# cat test
this is 1
this is 2
this is 3
this is 4
this is 5
[root@localhostl ~]# sed -n 'n;p' test
this is 1
this is 3
[root@localhostl ~]# sed -n 'n;p' test
this is 1
this is 2
this is 3
this is 4
命令功能h
是將當前模式空間中內容覆蓋至快取區
h是將當前模式空間中的內容追加至快取區
g命令是將當前快取區中內容覆蓋至模式空間
g是將當前快取區中的內容追加至模式空間
x是將當前快取區和模式空間內容互換
[root@localhostl ~]# cat test212
1122
111222
[root@localhostl ~]# sed '
> /1/
> /2/' test221
2211
222111
[root@localhostl ~]# cat test3
hello world
hello runtime
hehe
xixi
henhen
haha
end[root@localhostl ~]# sed '
> /^$/!
> /^$/' test3
hello world
hello runtime
hehe
xixi
henhen
haha
Sed指令速查
尊重原著,著明 本帖為優秀的帖子整合 1.sed簡介 2.定址 可以通過定址來定位你所希望編輯的行,該位址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的範圍 包括行數表示的那兩行 如1,3表示1,2,3行,美元符號 表示最後一行。範圍可以通過資料,正規表示式或者二者結合的方式確定 3.se...
sed操作指令
1 替換 1.txt文字中old為new,如下 sed s old new g 1.txt 2 列印 1.txt文字第一行至第三行,如下 sed n 1,3p 1.txt 3 列印 1.txt文字中第一行與最後一行,如下 sed n 1p p 1.txt 4 刪除 1.txt第一行至第三行 刪除匹配...
sed高階用法
echo mmj evan df sed s 2 g 表示式含義s 表示替換命令 表示第乙個引號前的內容 表示兩引號之間的內容 表示引號後的內容 2表示第二對括號裡面的內容 輸出結果 evan同理 echo mmj evan df sed s 1 g 輸出結果為 mmj批量修改 echo excut...