grep
- 格式:
grep 参数 查找内容 文件名
- 没有文件名默认为标准输入(一般来自管道)
- 如果有xargs,则来自管道的输入视为文件名
- 否则视为要查找的文本
- 同时查找多个文件
- 文件名采取正则形式
- find配合xargs
find -name *.txt | xargs grep 123
- 参数
-E
支持正则-n
显示行号-i
不区分大小写-A n/ -B n
显示匹配行前/后n行内容
-r
不局限与文件,在目录下递归查找含有内容的文件-l
只显示匹配的文件名,不显示内容-L
只显示不匹配的文件名-w
只匹配整个单词,而不是字符串的一部分^
和 $
分别标注行首和行尾-v
反向匹配(可用来排除文件或内容)
grep -irn .
grep -lr 123 .
grep -Lr 123 .
grep -E "123|456" file
grep 123 file | grep 234 | grep 345
grep -w magic file
grep "^hello" file
grep "^hello\$" file
grep 123 . | grep -v *.txt | grep -v *.out
grep 123 . | grep -Ev "\.txt|\.out"
grep的and, or, not 逻辑
grep A file | grep B file
grep -E A|B file
grep -v A file
find
- 格式:
find 路径 参数
-a
表示and, -o
表示or, -not
表示not-name
只支持shell通配符,如果需要支持正则,需要-regex
参数-ls
参数显示详细文件详细,而不只是文件名-maxdepth <num>
限制查找深度
find path -name filename
find path -ctime -10
find path -amin +5
find path -newer filename
find path -type d
find path -size +1024M
find path -size 0
find path -empty
find . -size +0 -a -size -512
find . -type d | xargs ls
find .. -size +0 | grep -E "*.txt"