shell腳本--文本處理三劍客之 sed基礎使用

sed的工作模式

基礎介紹  sed(Stream Editor) 流編輯器. 對標準輸出或文件逐行進行處理

語法格式

第一種

stdout | sed [option] "pattern command"

第二種

sed [options] "pattern command" file

set的選項

選項                        含義

-n                    只打印模式匹配
-e                    直接在命令行進行sed編輯,默然選項
-f                    編輯動作保存在文件中,指定文件執行
-r                    支持拓展正則表達式
-i                    直接修改文件內容

-p再次輸出命令 

$ sed 'p' sed.txt 
i love python
i love python
I love PYTHON
I love PYTHON


hoodep
hoodep

-n 只打印匹配模式
$sed -n 'p' sed.txt 
i love python
I love PYTHON

hoodep

'/python/' 爲固定模式 

$ sed -n '/python/p' sed.txt 
i love python

-e 多個命令執行

$ sed -n -e '/python/p' -e '/PYTHON/p' sed.txt 
i love python
I love PYTHON

-f 執行edit.sed中的文本命令 

$ sed -n -f edit.sed  sed.txt

-r 支持拓展表達式 

$ sed -n '/python\|PYTHON/p' sed.txt 
i love python
I love PYTHON


$ sed -n -r '/python|PYTHON/p' sed.txt 
i love python
I love PYTHON

-i 直接修改文件內容 ,不帶-i直接修改輸出內容

$ sed -n 's/love/like/g;p' sed.txt 
i like python
I like PYTHON

hoodep




$ sed -n -i 's/love/like/g;p' sed.txt 

$ cat sed.txt 
i like python
I like PYTHON

hoodep

sed中的pattern詳解

                            pattern用法表

匹配模式                                    含義
10command                            匹配到第10行
10,20command                         匹配從第10行開始到,到20行結束
10,+5command                         匹配從第10行開始到,到16行結束
/pattern1/command                    匹配到pattern1的行
/pattern1/,/pattern2/command         匹配到pattern1的開始 到匹配到pattern2的行結束
10,/pattern1/command                 匹配從第10行開始,匹配到pattern1的行結束
/pattern1/,10command                 匹配到的pattern1的行開始,到第10行匹配結束

打印指定行 

$ sed -n 2p sed.txt 
I like PYTHON

打印一定範圍的行

sed -n '3,4p' sed.txt 

hoodep

 /pattern1/command   正則匹配模式

$  sed -n '/^root/p' /etc/passwd
root:x:0:0:root:/root:/bin/bash

/pattern1/,/pattern2/command  

$ sed -n '/^root/,/^chencl/p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
...........
chencl:x:1000:1000:chencl,,,:/home/chencl:/bin/bash

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章