sed擅长取行和替换;grep擅长查找功能;awk擅长取列。
使用sed处理文档
1.命令格式
sed [选项] 'command' 输入文本
2.sed定位
first~setp:first起始行,step步长
$:最后一行
/正则表达式/:匹配正则表达式的行
addr1,addr2;指定地址
addr1,+N;从此行往下的N行,共N+1行
3.sed常用选项
-n:使用静默模式,使用-n后被sed处理的才显示
-e:多重编辑,命令顺序会影响结果
-i:直接修改文件内容,不在屏幕上显示
-r;使用扩展正则
=:打印匹配行的行号
4.sed功能
a\:在当前行后添加一行或多行
c\:用此符号后新文本替换当前行中的文本
i\:在当前行之前插入文本
d:删除行
l:列出非打印字符
p:打印行
n:读入下一输入行,并从下一条命令开始对其处理
q:结束或退出sed
r:从文件中读取输入行
!:对所选行以外的所有行应用命令
s:用一个字符串替换另一个
g:在行内进行全局替换
w:将行写入文件
y:将字符转换为另一种字符
5.实例操作
首先编写一个文件,名为sed.txt.
[root@controller ~]# cat sed.txt
java beijing tom 13 22.1*
javascript tianjing Alex 22 9.7*
python shijiazhuang tom 18 5.0*
linux beijing Alice 9 11.2*
linuxshell tianjing lucy 5 22.0*
unix shanghai lucy 17 18.7
network nanjing zhangsan 32 7.9
pythondjango taiyuan wangqian 24 5.3
shell xian role 7 7.7
(1)打印包含python的内容
(2)打印删除第三行到最后一行后剩余的内容
3)将文档中所有beijing替换为baoding
4)打印java和unix之间的所有行
5)打印第4行到最后一行
6)在newwork后面插入一行分隔符“----------”
7)将第2-4行小写字a转换成大写字符A
8)将第1行到底5行每行结尾增加一个*号,并将结果保存到文本文件