linux中行編輯器sed的基本用法
linux中行編輯器sed的基本用法
sed的處理方法
默認逐行讀取文件到內存中---->把符合模式的行讀取到屬於sed的內存中(sed的模式空間)進行編輯---->將處理後模式空間的內容顯示到屏幕上
sed:行編輯器,默認不編輯源文件,僅對模式空間中的數據進行處理顯示
使用方法
sed [OPTION]... {script-only-if-no-other-script} [input-file]..
sed [OPTION]..‘LinesRangeCommand‘ file...
[OPTION]..
-n:靜默模式,不再默認顯示模式空間中的內容
-i:直接修改源文件
-e ‘LinesRangeCommand‘ -e ‘LinesRangeCommand‘:同時執行多個操作
-f:指定存放多個sed命令的腳本文件使得同時執行多個操作
-r:表示使用擴展正則表達式,默認僅使用正則表達式
LinesRange:表示範圍,即哪些行
用法1:StartLine,EndLine 比如 1,100 從第1行到第100行
用法2:/PATTERN/ 比如 /^redhat/ 從以redhat開頭的行開始的所有行
用法3:/PATTERN1/,/PATTERN2/ 第一次被PATTERN1匹配到的行開始,
到第一次被PATTERN匹配到的行結束
Line:指定的行
StartLine,+N 從StartLine開始向後的N行
Command:表示命令
d:刪除符合條件的行
sed ‘2,$d‘ /etc/passwd
p:顯示符合條件的行
sed ‘/home/p‘ /etc/passwd
a \string: 在指定的行後面追加新行,內容為string
sed ‘/^root/a \i am root‘ /etc/passwd
i \string:在指定的行前面添加新行,內容為string
sed ‘/^root/i \i am root‘ /etc/passwd
r File:將FILE1文件的全部內容添加到FILE2符合條件的行之後,
用於合並文件
sed ‘2r FILE1‘ FILE2
w FILE:將FILE2文件中符合條件的行另存至FILE1文件中
sed ‘2w FILE1‘ FILE2
s/pattern/string/:查找並替換,
默認只替換每行中第一個被匹配到的字符串
g:全局替換 s/pattern/string/g
i:忽略字符大小寫s/pattern/string/i
sed ‘1,2s/oot/OOT/‘ /etc/fstab
後向引用 \(string\),\1,\2
sed ‘s#\(l..e\)#\1r#g‘ test.txt
&:模式匹配 如 sed ‘s/l..e/&r/g‘ test.txt
將前面模式匹配到的字符串後面加
本文出自 “術業有專攻” 博客,請務必保留此出處http://fuvip.blog.51cto.com/9276123/1980853
linux中行編輯器sed的基本用法