命令行参数:
grep -i pattern files 不区分大小写地搜索,默认情况区分大小写。
grep -l pattern files 只列出匹配的文件名。
grep -L pattern files 列出不匹配的文件吗。
grep -w pattern files 只匹配整个单词,而不是字符串的一部分。
grep -C number pattern files 匹配的上下文分别显示[number]行。
grep pattern1 | pattern2 files 显示匹配pattern1或pattern2的行。
grep pattern1 files | grep pattern2 显示匹配pattern1又匹配pattern2的行。
grep -n pattern files 即可显示行号信息。
grep -c pattern files 显示匹配的总行数。
用于搜索的特殊符号:
\< 和\>分别标注单词的开始与结尾。
例如
grep man * 会匹配 Batman、mantic、man等
grep '\<man' * 匹配mantic、man,但不匹配Batman.
grep ‘\<man\>’ * 只匹配man
^ 指匹配的字符串在行首。
$ 指匹配的字符串在行尾。
grep复杂实例:
1.
在~/mybin目录下搜索带字符串songtaiwu的文件
taiwudeMacBook-Pro:~ taiwu$ grep 'songtaiwu' ~/mybin/*
grep: /Users/taiwu/mybin/song: Is a directory
/Users/taiwu/mybin/test_1.txt:songtaiwuad
/Users/taiwu/mybin/test_4.txt:songtaiwu
grep: /Users/taiwu/mybin/todo: Is a directory
默认情况下,grep只搜索当前目录,如果此目录下有许多子目录,grep结果会提示Is a directory,这可能会使得
grep的输出难于阅读。
两种解决办法
明确要求搜索子目录 grep -r 'songtaiwu' ~/mybin/*
忽略子目录 grep -d skip 'songtaiwu' ~/mybin/*
2.
如果输出很多,您可以通过管道将其转到less上阅读
grep -r 'songtaiwu' ~/mybin/* | less
grep -i pattern files 不区分大小写地搜索,默认情况区分大小写。
grep -l pattern files 只列出匹配的文件名。
grep -L pattern files 列出不匹配的文件吗。
grep -w pattern files 只匹配整个单词,而不是字符串的一部分。
grep -C number pattern files 匹配的上下文分别显示[number]行。
grep pattern1 | pattern2 files 显示匹配pattern1或pattern2的行。
grep pattern1 files | grep pattern2 显示匹配pattern1又匹配pattern2的行。
grep -n pattern files 即可显示行号信息。
grep -c pattern files 显示匹配的总行数。
用于搜索的特殊符号:
\< 和\>分别标注单词的开始与结尾。
例如
grep man * 会匹配 Batman、mantic、man等
grep '\<man' * 匹配mantic、man,但不匹配Batman.
grep ‘\<man\>’ * 只匹配man
^ 指匹配的字符串在行首。
$ 指匹配的字符串在行尾。
grep复杂实例:
1.
在~/mybin目录下搜索带字符串songtaiwu的文件
taiwudeMacBook-Pro:~ taiwu$ grep 'songtaiwu' ~/mybin/*
grep: /Users/taiwu/mybin/song: Is a directory
/Users/taiwu/mybin/test_1.txt:songtaiwuad
/Users/taiwu/mybin/test_4.txt:songtaiwu
grep: /Users/taiwu/mybin/todo: Is a directory
默认情况下,grep只搜索当前目录,如果此目录下有许多子目录,grep结果会提示Is a directory,这可能会使得
grep的输出难于阅读。
两种解决办法
明确要求搜索子目录 grep -r 'songtaiwu' ~/mybin/*
忽略子目录 grep -d skip 'songtaiwu' ~/mybin/*
2.
如果输出很多,您可以通过管道将其转到less上阅读
grep -r 'songtaiwu' ~/mybin/* | less