每天学一点儿shell:Linux三剑客——sed命令
生活随笔
收集整理的這篇文章主要介紹了
每天学一点儿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 | 備份文件并原處編輯 |
常用的編輯命令:
| 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 3331、打印文件的第2行
[root@hadoop-master test-sed]# nl file.txt | sed -n 2p2 leo2 hello2-sed2、打印文件的第2-5行
[root@hadoop-master test-sed]# nl file.txt | sed -n '2,5p'2 leo2 hello2-sed3 leo3 hello3-sed4 hello se5 aaa 1113、刪除第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 3334、刪除第2-5行
[root@hadoop-master test-sed]# nl file.txt | sed '2,5d'1 leo hello-sed6 bbb 2227 ccc 3335、刪除第2到最后一行
[root@hadoop-master test-sed]# nl file.txt | sed '2,$d'1 leo hello-sed6、追加“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 3337、把2-5行替換成"china"
[root@hadoop-master test-sed]# nl file.txt | sed '2,5c china'1 leo hello-sed china6 bbb 2227 ccc 3338、只打印包含模板的行
[root@hadoop-master test-sed]# nl file.txt | sed -n '/leo/p'1 leo hello-sed2 leo2 hello2-sed3 leo3 hello3-sed9、只打印包不含模板的行
[root@hadoop-master test-sed]# nl file.txt | sed '/leo/d'4 hello se5 aaa 1116 bbb 2227 ccc 33310、替換字符串
將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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天学一点儿shell:Linux三剑客
- 下一篇: 每天学一点儿shell:Linux三剑客