Sed是一項Linux指令,功能同awk類似,差別在于,sed簡單,對列處理的功能要差一些,awk的功能復雜,對列處理的功能比較強大。
Sed全稱是:Stream EDitor
今天分享的內容是:
Sed命令使用方法全解
命令1:刪除文件第二行 d命令
sed ‘2d’ text.txt
命令2:打印從第五行開始到第一個包含以w1開始的行之間的所有行 p命令
sed -n ‘5,/^w1/p’
命令3:所有在模板test和check所確定的范圍內的行都被打印
sed -n ‘/test/,/cat/p’ text.txt
命令4:多點編輯:e命令
第一條命令-e刪除1至5行
第二條命令-e用w1替換w2
sed -e ‘1,5d’ -e ‘s/w1/w2/’ text.txt
命令5:選定行的范圍:逗號, sed 截圖某時間到某時間之間的日志
sed -n ‘/2016-03-01 10:00/,/2016-03-01 12:15:/p’ /mnt/resource/catalina.out > /tmp/catalina.out.20160301
命令6:全局替換zk.properties文件中的內容
-i 表示inplace edit,就地修改文件
-r 表示搜索子目錄
-l 表示輸出匹配的文件名
grep -rl 172.16.100.33 /opt/tomcat/webapps/ROOT/WEB-INF/classes/sysconfigs/zk.properties | xargs sed -i s/172.16.100.33/172.16.100.59/g
命令7:將分隔符換成問號”?”
sed ‘s?原字符串?替換字符串?’
示例文件
[root@test-test-mysql-01 scripts]# cat text.txt w1 w1 w1 w1 w1 w1test my car w1w1 w1 w1w1
命令8:在所有行首添加
sed ‘s/^/添加的頭部&/g’
[root@test-test-mysql-01 scripts]# sed ‘s/^/添加的頭部&/g’ text.txt 添加的頭部w1 w1 w1 w1 w1 w1添加的頭部test my car w1添加的頭部w1 w1 w1添加的頭部w1
命令9:在所有行末添加
sed ‘s/$/&添加的尾部/g’ text.txt
[root@test-test-mysql-01 scripts]# sed ‘s/$/&添加的尾部/g’ text.txtw1 w1 w1 w1 w1 w1添加的尾部test my car w1添加的尾部w1 w1 w1添加的尾部w1添加的尾部
命令10:替換第2行
sed ‘2s/原字符串/替換字符串/g’
命令11:替換最后一行
sed ‘$s/原字符串/替換字符串/g’
命令12:替換2到5行
sed ‘2,5s/原字符串/替換字符串/g’
命令13:替換2到最后一行
sed ‘2,$s/原字符串/替換字符串/g’
命令14:(-n)選項和p標志一起使用表示只打印那些發(fā)生替換的行。
sed -n ‘s/^w1/w2/p’ text.txt
命令15:全局替換文件中car 字符串后的wl 后追加w2
[root@test-test-mysql-01 scripts]# sed -e ‘/car/s/w1/&w2/g’ text.txt w1 w1 w1 w1 w1 w1test my car w1w2w1 w1 w1w1
命令16:在文件中w1后面追加w2,且只有第一次出現w1的時候
[root@test-test-mysql-01 scripts]# sed -e ‘s/w1/&w2/1’ text.txt w1w2 w1 w1 w1 w1 w1test my car w1w2w1w2 w1 w1w1w2