日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

每天学一点儿shell:Linux三剑客——sed命令

發(fā)布時間:2025/3/19 linux 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 每天学一点儿shell:Linux三剑客——sed命令 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • sed用法
  • sed實例用法
    • 1、打印文件的第2行
    • 2、打印文件的第2-5行
    • 3、刪除第2行
    • 4、刪除第2-5行
    • 5、刪除第2到最后一行
    • 6、追加“l(fā)ove china”
    • 7、把2-5行替換成"china"
    • 8、只打印包含模板的行
    • 9、只打印包不含模板的行
    • 10、替換字符串

sed用法

用法如下:

sed [選項]... {腳本(如果沒有其他腳本)} [輸入文件]... 選項解釋
-n–quiet, --silent ,靜默模式,不輸出內(nèi)容到屏幕
-e–expression腳本,添加"腳本"到程序的運行列表
-f–file腳本文件,添加"腳本文件"到程序的運行列表
-r–regexp-exended,在腳本中使用擴展正則表達式
-i–in-place,直接編輯文件
-i.bak備份文件并原處編輯

常用的編輯命令:

關(guān)鍵字解釋
d刪除匹配的行,并立即啟用下一輪循環(huán)
p打印當前模式空間內(nèi)容,追加到默認輸出之后
a新增,a的后面可以接字符串,支持使用\n實現(xiàn)多行追加
i在行前面插入文本
c替換行為單行或多行文本
w保存模式匹配的行至指定文件
r讀取指定文件的文本至模式空間中匹配到的行后
=模式空間中的行打印行號
!模式空間中匹配行取反處理
s///查找替換,支持使用其他分隔符,s@@@,s###。替換標記:1.g行內(nèi)全局替換2.p顯示替換成功的行3.w newFile 將替換成功的行保存至文件中

sed實例用法

測試文件內(nèi)容如下

[root@hadoop-master test-sed]# nl file.txt1 leo hello-sed2 leo2 hello2-sed3 leo3 hello3-sed4 hello se5 aaa 1116 bbb 2227 ccc 333

1、打印文件的第2行

[root@hadoop-master test-sed]# nl file.txt | sed -n 2p2 leo2 hello2-sed

2、打印文件的第2-5行

[root@hadoop-master test-sed]# nl file.txt | sed -n '2,5p'2 leo2 hello2-sed3 leo3 hello3-sed4 hello se5 aaa 111

3、刪除第2行

[root@hadoop-master test-sed]# nl file.txt | sed '2d'1 leo hello-sed3 leo3 hello3-sed4 hello se5 aaa 1116 bbb 2227 ccc 333

4、刪除第2-5行

[root@hadoop-master test-sed]# nl file.txt | sed '2,5d'1 leo hello-sed6 bbb 2227 ccc 333

5、刪除第2到最后一行

[root@hadoop-master test-sed]# nl file.txt | sed '2,$d'1 leo hello-sed

6、追加“l(fā)ove china”

[root@hadoop-master test-sed]# nl file.txt | sed '2a love china\n'1 leo hello-sed2 leo2 hello2-sed love china3 leo3 hello3-sed4 hello se5 aaa 1116 bbb 2227 ccc 333 [root@hadoop-master test-sed]# nl file.txt | sed '2i love china'1 leo hello-sed love china2 leo2 hello2-sed3 leo3 hello3-sed4 hello se5 aaa 1116 bbb 2227 ccc 333

7、把2-5行替換成"china"

[root@hadoop-master test-sed]# nl file.txt | sed '2,5c china'1 leo hello-sed china6 bbb 2227 ccc 333

8、只打印包含模板的行

[root@hadoop-master test-sed]# nl file.txt | sed -n '/leo/p'1 leo hello-sed2 leo2 hello2-sed3 leo3 hello3-sed

9、只打印包不含模板的行

[root@hadoop-master test-sed]# nl file.txt | sed '/leo/d'4 hello se5 aaa 1116 bbb 2227 ccc 333

10、替換字符串

將leo替換為china

[root@hadoop-master test-sed]# nl file.txt | sed 's/leo/china/g'1 china hello-sed2 china2 hello2-sed3 china3 hello3-sed4 hello se5 aaa 1116 bbb 2227 ccc 333

總結(jié)

以上是生活随笔為你收集整理的每天学一点儿shell:Linux三剑客——sed命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。