Linux 输出过滤器:grep 命令
grep
命令的意思是 「global regular expression print」。grep 命令用来过滤文件的内容,方便搜索。
带管道符的 grep搜索命令
grep
命令通常和管道符 (|) 一起使用。
语法:
command | grep <searchWord>
例如:
cat marks.txt | grep 9
通过查看上面的快照,grep 命令过滤 mark.txt 里面所有包含 9
的数据。
不带管道符的 grep 搜索
grep 命令也可以不和管道符一起使用。
语法:
grep <searchWord> <file name>
例如:
grep 9 marks.txt
观察上面的截图,grep 命令实现了和上一个例子一样的功能,但是没有使用管道符。
grep 命令选项
- grep -vM:
grep -v
命令显示不包含指定内容的行。
语法:
grep -v <searchWord> <fileName>
例如:
grep -v 9 marks.txt
观察上面的截图, 命令 "grep -v 9 marks.txt" 展示了不包含搜索词 9
的行。
- grep -i : 'grep -i' 命令不区分搜索词的大小写。
语法:
grep -i <searchWord> <fileName>
例子:
grep -i red exm.txt
看上面的截图, 命令 「grep -i red exm.txt」 用于显示所有包括忽略大小写 'red' 的行。
-
grep -A/ grep -B/ grep -C
grep -A 命令用于显示 搜索行 + 搜索行后面的行。
grep -B 命令用于显示 搜索行前面的行 + 搜索行。
grep -C 命令用于显示 搜索行前面的行 + 搜索行 + 搜索行前面的行。
你可以使用(A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....) 去代表任意行数。
语法:
grep -A<lineNumber> <searchWord> <fileName>
grep -B<lineNumber> <searchWord> <fileName>
grep -C<lineNumber> <searchWord> <fileName>
例子:
grep -A1 yellow exm.txt
grep -B1 yellow exm.txt
grep -C1 yellow exm.txt
看上面的截图,命令 「grep -A1 yello exm.txt」 用于显示搜索到的行和下一行,命令 「grep -B1 yello exm.txt」 用于显示前一行和搜索到的行,命令 「grep -C1 yello exm.txt」 用于显示前一行、搜索到的行、后一行。