LinuxLinux小推车

五.Linux之grep命令

2019-01-26  本文已影响0人  Dakini_Wind

grep命令选项

-c  只输出匹配行的数量
-i  搜索时忽略大小写
-h 查询多文件时不显示文件名
-l 只列出符合匹配的文件名,不列出具体的行
-n 列出所有匹配的行,并显示行号
-s  不显示不存在或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w  匹配整词
-x  匹配整行
-r  递归搜索
-q  禁止输出任何结果,以退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-E 支持拓展的正则表达式
-F  不支持正则表达式,按照字符串的字面意思进行匹配

grep选项demo

$ grep 11 1.txt 
11:a
$ grep -c 1 1.txt 2.txt 
1.txt:1
2.txt:1
$ grep -n 11 *
1.txt:1:11:a
new1.txt:1:11:a
sort1.txt:1:11:a
$ grep -v 11 1.txt 
2:b
2:e
5:e
5:e
6:o
5:e
3:p
04:p
$ grep -i A 1.txt 
11:a
$ grep 11 *
1.txt:11:a
new1.txt:11:a
sort1.txt:11:a
$ grep -l 11 *
1.txt
new1.txt
sort1.txt
$ grep  123 123.txt 
grep: 123.txt: 没有那个文件或目录
$ grep  -s 1 123.txt
$ grep 11:* 1.txt 
11:a
$ grep -w 11:* 1.txt 
11:a

!!按照我的理解此处不应该搜索到才对

$ grep  '2:d' 2.txt 
2:d
2:dd
2:d  d
$ grep -w '2:d' 2.txt 
2:d
2:d  d
$ grep -x '2:d' 2.txt 
2:d
$ grep -E '(1|2|):' 2.txt 
1:c
2:d
2:dd
2:d  d
:ddddddd

grep与其他命令组合使用

$ ps -ef | grep fitcx
# 查找指定进程
$ ls -l | grep .*.txt
# 查找当前目录txt文件
$ find . -name "*.txt" -exec grep -l -n "11" {} \;
# 查找包含“11”的txt文件
./1.txt
./sort1.txt
./new1.txt

上一篇下一篇

猜你喜欢

热点阅读