linux awk、sed

sed替换文本

1.文本替换:

 cat file | sed "s/pattern/replace_string" file 

 2.使用-i选项,sed将替换结果应用于file文件(sed默认打印出被替换的文本)

 sed -i "s/text/replace/" file 

3.由于sed默认只替换每行首次匹配的内容,故可以使用g标记替换所有内容。

sed 's/text/abc/g' file

4.移除空行

$ sed '/^$/d' file

awk高级文本处理

1.过滤模式

$ awk '/linux/' filename
$ awk '!/linux/' filename

分别是显示出包含linux的行和不包含linux的行

 2.统计文件行数

awk 'END{ print NR }' file

3.在某个以成绩排序的学生列表中,得到成绩最高4名学生的姓名

 

 4.删除包含特定单词的'句子

删除包含mobile phones的句子。

$ sed 's/ [^.]*mobile phones[^.]*\.//g' file

每一句话均已空格开头,以.结尾。格式为:空格+若干文本+mobile phones+若干文本+句句点。最终被//替换

 

posted @ 2020-09-10 16:36  猫七的blog  阅读(118)  评论(0编辑  收藏  举报