文章目录
一、Linux文本三剑客—grep、sed、awk
awk、grep、sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。
-
grep——Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红)。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
命令格式 :grep [option] pattern file
常用参数:
-A<显示行数>:除了显示符合范本样式的那一列之外,并显示该行之后的内容。 -B<显示行数>:除了显示符合样式的那一行之外,并显示该行之前的内容。 -C<显示行数>:除了显示符合样式的那一行之外,并显示该行之前后的内容。 -c:统计匹配的行数 -e :实现多个选项间的逻辑or 关系 -E:扩展的正则表达式 -f FILE:从FILE获取PATTERN匹配 -F :相当于fgrep -i --ignore-case #忽略字符大小写的差别。 -n:显示匹配的行号 -o:仅显示匹配到的字符串 -q: 静默模式,不输出任何信息 -s:不显示错误信息。 -v:显示不被pattern 匹配到的行,相当于[^] 反向匹配 -w :匹配 整个单词
-
sed 是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace ),接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如‘D’ 的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间。这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出或-i。
命令格式:sed [options] '[地址定界] command' file(s)
常用选项:
-n:不输出模式空间内容到屏幕,即不自动打印,只打印匹配到的行 -e:多点编辑,对每行处理时,可以有多个Script -f:把Script写到文件当中,在执行sed时-f 指定文件路径,如果是多个Script,换行写 -r:支持扩展的正则表达式 -i:直接将处理的结果写入文件 -i.bak:在将处理的结果写入文件之前备份一份