Sed
獲取除 x 到 y 之外的所有行
我有一個像這樣的文件:
A B C D E F
我可以使用第 2 到 4 行
sed -n 2,4p
如何獲得除 2 到 4 之外的所有行?
您的範例命令確實與您想要的相反。閱讀手冊頁並註意
-n
禁用sed
的預設行為,即列印處理的每一行。您禁用行的列印,然後僅顯式列印 range 中的行2,4
。一種解決方案是啟用行的預設列印,但告訴
sed
刪除您範圍內的行:$ sed 2,4d << EOF > A B C D E F > EOF A E F
函式可以以
!
字元開頭,在這種情況下,如果地址不選擇模式空間,則應應用該函式。(來源)
在您的情況下,功能是
p
,地址是2,4
。sed -n '2,4!p'
(單引號以防
!
在您的 shell 中是特殊的。)