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