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+若干文本+句句点。最终被//替换