在我们使用 Linux 的过程中, 我们经常需要对文本进行处理,需要一些强有力的工具, 来提升我们的效率.接下来介绍下 grep/cat/awk/uniq这些常用命令的使用.

grep

grep 是我们用的非常多的命令, 查询日志, 查找关键内容等等.

查看匹配到的行

查询包含 xyz 的行

grep 'xyz' myFile

在当前目录下所有html文件中查询包含 xyz 的行

grep 'xyz' *html

查找指定目录下所有html文件中包含 xyz 的行

grep -r 'xyz' --include='*html' ~/web
  • -r 选项代表递归查找目录下所有子目录中的内容
  • --include='*html'

非正则匹配

-F 选项意味着以固定字符串的模式匹配

搜索当前目录下的rb文件中包含 .*的行

grep -F '.*' *rb

当你搜索的是类似正则表达式的内容时,将非常有用

若你搜索的关键字比较复杂, 可以将内容写入到文件, 让 grep 从文件中加载这些匹配关键字

递归搜索目录下所有 js 源码文件, 需要匹配的关键字信息在 myPattern.txt 文件中

grep -r --file=myPattern.txt --include=*js .

比较有用的选项汇总

  • -F 固定字符串匹配(非正则匹配)
  • -P perl 正则表达式匹配
  • -i 忽略大小写(大小写不敏感)
  • -v 反向选中不包含关键字的行

查询所有不包含 html HTTP 内容的行

grep -v 'html HTTP' *log

查询所有包含 png HTTPjpg HTTP 关键字的行

grep -P 'png HTTP|jpg HTTP' *log
  • -H 结果中包含匹配到的文件名
  • -h 结果中不包含匹配到的文件名
  • -l 仅仅打印文件名, 不输出匹配到的行
  • -L 仅仅打印未包含关键字的文件名

【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取!
https://cloud.tencent.com/act/cps/redirect?redirect=1068&cps_key=e4b50f6c64a4480367f8a8d16fd07c5a&from=console

标签: grep, 文本处理

添加新评论