shell-sed 常見的一些高級用法


-n 取消默認輸出(輸出所有文本內容),-n只顯示處理過的行
-i 直接操作文件
-f 使用sed腳本


p 打印匹配的內容,通常與-n一起使用
a 追加
c 更改
i 插入
d 刪除
s 替換
p 打印
= 打印匹配的行號
n 讀取下一行
r,w 讀和寫

實例:
一.刪除操作,!為取反操作
sed '2d' a.txt #刪除第2行
sed '2!d' a.txt #刪除第2行以外的所有行
sed '1,2d' a.txt #刪除第1,2行
sed '2,+1' a.txt #刪除第2行及后面的一行
sed '1~3d' a.txt #從第1行開始,每隔3行刪除一行
sed '$'d a.txt #刪除最后一行
sed '/^$/d' a.txt #刪除空行
sed '/aaa/d' #刪除匹配行
sed '/aaa\|bbb/' #刪除匹配行
sed '1,10{/aa/d}' a.txt #刪除1~10行中的匹配行
sed '/aaa/,$d' #刪除匹配行到最后一行


二.插入新行
a:插入當前行的后面一行,i:插入當前行的前面一行,c:更改行,下面以a為例
sed 'atest' a.txt #在每行后面插入test
sed '2atest' a.txt #在第2行后面面插入test
sed '2!atest' a.txt #在除了第二行的每一行后面插入test
sed '/hello/atest' a.txt #在匹配行后面插入test
sed '$atest' a.txt #在最后一行后面插入test


三.替換操作
sed 's/aaa/bbb/' a.txt #替換每一行的第1個aaa為bbb
sed 's/aaa/bbb/g' a.txt #替換每一行的所有aaa為bbb
sed 's/aaa/bbb/2' a.txt #替換每一行的第2個aaa為bbb
sed '1,10s/aaa/bbb/g' #替換第1行到第10行所有的aaa為bbb
sed 's/^[0-9]/(&)/' a.txt #將數字加上一個(), &為匹配到的內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM