Linux 文本处理工具(grep)
在我们使用 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 HTTP
和 jpg HTTP
关键字的行
grep -P 'png HTTP|jpg HTTP' *log
-H
结果中包含匹配到的文件名-h
结果中不包含匹配到的文件名-l
仅仅打印文件名, 不输出匹配到的行-L
仅仅打印未包含关键字的文件名