Linux常用命令awk和sed
一、awk几个常见内置变量
FS表示字段分隔符
OFS表示输出数据的字段分隔符
RS表示记录分隔符
ORS表示输出字段的行分隔符
NF表示字段数
NR表示记录数
1。1、区间选择,比如我们在1、2、3之间,使用awk02指令打印大于2的数据3
echo
1hr2hr3hrawk02
1。2、记录数:NR,输入指令去掉打印第一行的数据
awkNR1tmpfirst。txt
1。3、输出显示的fromhellomrytqa被空格分隔成三个字段且first。txt文件中的三条数据字段数都是3
awk{printNR,NF}tmpfirst。txt
1。4、awkBEGIN{FSh}{printNR,NF,1,2}tmpfirst。txt
1。5、awkOFS{print1,2,3}tmpfirst。txt
1。6、awkBEGIN{print1003}
二、sed〔addr〕X〔opptions〕,其中〔〕定义了一个范围,x位是具体操作,options表示进行数据修改的选项,常用的几个:
e表示可以指定表达式
sedn2p2表示打印第二行的数据
s表示查找并替换
i表示直接修改源文件
E支持扩展表达式
2。1、sed指令将qa123替换成mrytqa
sedsqa123mrytqatmpfirst。txt
2。2、把以q开头的三个字符都替换成xx,后面的23没有改变,是因为需要添加一个额外的标记符g
sedsq。。xxgtmpfirst。txt
三、问awk和sed最大的区别是什么?
awk用于数据的提取,sed更专注用于数据的修改,sed的重要作用是完成对数据的增删改查工作:
d是删除
p是打印
s是查找并进行替换
12可以根据匹配的数据进行分组处理