其中的第一个技巧允许您创建包含您要查找的任何字符串的文件列表。它使用-l(仅列出文件名,而不是匹配的内容)选项加上通过子目录传递的-r选项。这可以帮助您找到您可以在不分散您的所有原因匹配搜索条件的原因而不会分散您的文件。
grep -rl“你想找的字符串”*
例子:
$ grep -rl“会议纪录”* ark2010 / 02-02-notes ark2010 / tbd jan2010 / taskforce2 mar2010 / taskforce2
Grep在Linux上的另一个有用技巧允许您在搜索条目中指定Perl正则表达式。在这个例子中,我们可以给出grep一个允许它匹配mulitple字符串的表达式,就像egrep一样。您可以比显示的示例变得更复杂,但这是基本语法:
grep -p“while | for”grep -p'photo \ .gif'*
您还可以将Grep与find命令合并以获取目标文件的一些有用提取文本。
找 。- 名称“* .r”-exec grep“rho”{}'\;-打印
当然,到目前为止,我遇到的最有用的Grep技巧之一是提供一些上下文以及您的查找。而不是仅显示您正在搜索的特定文本的行,您可以在匹配的行之前和之后打印出现的行 - 通常需要确定Tha“匹配”是否真的是您正在寻找的。
您可以在匹配的字符串之前使用“b”(fireS“)选项和”a“(for”之后“)选项匹配的行数,指定要查看的行数。
$ grep-b 2-a 2 echo * - whis1-while [$ n -lt 5] wher1-do thirl1:echo hello wher1-((n + = 1))wher1-do-done - whonison - #!/ bin/ bash whoison-谁:echo hello,$用户halison:echo look登录谁!谁:回声===========================谁是 - 谁|awk'{打印$ 1}'|排序|UNIQ HANIson:ECHO ===========================
请注意,在上面的第二条线块中显示超过五行,因为“回声”在这些行中出现了多次。