搜索文件中包含特定模式的文本行
grep "pattern" filename
grep "pattern" file1 file2 file3
grep "pattern" file1 file2 file3 --color=auto#着重标记匹配到的单词
使用正则表达式,需要加-E选项
grep -E "[a-z]+" filename
或者
egrep "[a-z]+" filename
只输出文件中匹配到的文本部分
echo this is a line | egrep -o "[a-z]."
line
打印包含匹配行之外的所有行
grep -v "pattern" filename
统计文件中包含匹配字符串的行数
grep -c "pattern" filename
统计文件中匹配字符串的数量
grep -o "pattern" filename | wc -l
打印包含匹配字符串的行数
grep "pattern" -n filename
grep "pattern" -n file1 file2 file3
打印匹配字符串的字节偏移位置
echo gnu is not unix | grep -b -o "not"
7:not
搜索多个文件并找出匹配文本位于哪个文件中
grep -l "pattern" file1 file2
搜索多个文件并找出不匹配文本位于哪个文件中
grep -L "pattern" file1 file2
忽略样式中的大小写
echo hello world | grep -i "HELLO"
hello
匹配多个样式
grep -e "pattern1" "pattern2"
打印匹配文本之前或之后的行
grep "pattern" -A 3 filename# 打印匹配结果之后的3行
grep "pattern" -B 3 filename# 打印匹配结果之前的3行
grep "pattern" -C 3 filename# 打印匹配结果之前与之后的3行
如果有多个匹配,使用--作为各部分的分节符
echo -e "a\nb\bc\n\a\nb\nc" | grep a -A 1
a
b
--
a
b
网友评论