标签: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
标签:sed的基本用法
原文地址:http://fuvip.blog.51cto.com/9276123/1980853