搜索文件中包含特定模式的文本行
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
統(tǒng)計文件中包含匹配字符串的行數(shù)
grep -c "pattern" filename
統(tǒng)計文件中匹配字符串的數(shù)量
grep -o "pattern" filename | wc -l
打印包含匹配字符串的行數(shù)
grep "pattern" -n filename
grep "pattern" -n file1 file2 file3
打印匹配字符串的字節(jié)偏移位置
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# 打印匹配結(jié)果之后的3行
grep "pattern" -B 3 filename# 打印匹配結(jié)果之前的3行
grep "pattern" -C 3 filename# 打印匹配結(jié)果之前與之后的3行
如果有多個匹配鸦概,使用--作為各部分的分節(jié)符
echo -e "a\nb\bc\n\a\nb\nc" | grep a -A 1
a
b
--
a
b