这些技巧中的第一个允许您创建一个文件列表,其中包含您正在寻找的任何字符串。它使用-l选项(只列出文件名,不列出匹配的内容)加上-r选项来递归遍历子目录。这可以帮助您找到您可能要寻找的文件,而不会因为特定文件匹配您的搜索条件的所有原因而分散您的注意力。
Grep -rl "string you want to find" *
例子:
$ grep -rl "meeting minutes" * ARK2010/02-02-notes ARK2010/TBD Jan2010/TASkForce2 Mar2010/ TASkForce2
Linux上使用grep的另一个有用技巧是允许在搜索词中指定Perl正则表达式。在这个例子中,我们可以给grep一个表达式,允许它匹配多个字符串,很像egrep。你可以得到比所示示例复杂得多的例子,但以下是基本语法:
而|为“* grep -P 'photo\.gif' *”
您还可以将grep与find命令结合使用,从目标文件中获取一些有用的文本提取。
找到。- name”*。R " -exec grep "rho" '{}' \;安全性
当然,到目前为止,我遇到的最有用的grep技巧之一是在您的发现中提供一些上下文。除了只显示包含您正在搜索的特定文本的行之外,还可以打印出现在匹配行之前和之后的行——这通常需要确定“匹配”是否真的是您正在寻找的内容。
你可以用"B" (for "before")选项指定你想在匹配的字符串之前看到多少行,用"A" (for "after")选项指定匹配后的行数。
$ grep - b 2 - a 2 echo *——while -while [$n -lt 5] while -do while: echo hello while - ((n +=1)) while -done——whoison-#!/bin/bash whoison- whoison:echo hello, $USER whoison:echo查看谁登录了!whoison:回声 =========================== whoison-who | awk的{打印1美元}| |排序uniq whoison:回声 ===========================
注意,上面的第二行显示了5行以上,因为“echo”在这些行中出现了不止一次。