该文件包含以下行
google.friendconnect
我从下面的命令中得到了一行
cat * | grep google
但是,我不知道它的位置。
如何在没有Ack的情况下获得文件的精确位置 ?
对于你正在描述的一般问题类,find你可以运行的文件
grep -r 'google.friendconnect' /
其中“/”将是您要search的任何目录path。 这将recursionsearch该目录树中的所有文件,以查找该string。 呈现的具体命令将需要一段时间,并会产生很多“权限被拒绝”的错误,除非你以root身份运行它。 由于它将searchproc,var,sys和其他用户主目录。 grep你可能还想要的另一个有用的选项是'-n'。 这也将打印出匹配的文件的行号。 如,
grep -n 'google.friendconnect' * testfile:3:google.friendconnect
我发现90%的时间使用“irn”选项来处理grep:不区分大小写,recursion和打印行号。
尝试-H标志为grep 。 另外,请不要在那里使用cat 。 这是没有必要的。
grep -H google *
为了澄清, -H标志强制grep打印文件名。 思考完之后,我记得当你search多个文件时,-H标志是默认的。 所以,在这种情况下,这是多余的。 安迪的回答非常简单,正确。
grep谷歌*
(而不是使用cat,给grep一个文件名的列表,它将打印与打印行时匹配的文件的名称)
在目录下的所有文件中searchstring以便在匹配的行上打印具有行号的匹配文件的最佳方法将从基本目录看起来像这样。
grep -Hn <string_of_interest> `find . -type f`
这是没有使用AWK(这是你的意思,我猜)。