Regex 如何使用grep搜索包含特定字符串的文件?

Regex 如何使用grep搜索包含特定字符串的文件?,regex,grep,Regex,Grep,例如,如果一个文件有一行“blahblah myID=1234567 blahblah”,我想搜索整个文件中包含1234567的所有文件 我尝试了grep-r'.*1234567.*'目录,但没有成功 files=$(ls -l /dir |awk '/^-/ {print $NF}') for i in $files do cat $i | grep "1234567" >> output.txt done 列出/dir和grep“1234567”的文件并写入o

例如,如果一个文件有一行“blahblah myID=1234567 blahblah”,我想搜索整个文件中包含1234567的所有文件

我尝试了grep-r'.*1234567.*'目录,但没有成功

files=$(ls -l /dir |awk '/^-/ {print $NF}')
for i in $files
do
      cat $i | grep "1234567" >> output.txt
done   
列出/dir和grep“1234567”的文件并写入output.txt执行以下操作:

grep -rw 'directory' -e "pattern"
-r是递归的,-w代表匹配整个单词

范例

grep -rw '/home/lib/foldername/' -e "1234567"

您还可以使用
-n
,它将告诉您与字符串匹配的行号

trued
grep-r'1234567'/path/to/directory
?您尝试的行号中的空格是否只是打字错误?grep-r'.*1234567.*'-因为如果它们是您键入的内容,那么grep将找不到“=1234567”这样的行,因为没有空格。我添加了空格,因为stackoverflow不会显示。*您可能需要“>>”而不是“>”,否则output.txt将只包含最后一个文件的结果。这很奇怪。我知道当前目录中的文件中有一个字符串“1234567”,但使用的是grep-rw-e“1234567”没有返回任何内容。然后我将包含“1234567”的段落复制到另一台linux机器中的另一个文件中,并执行相同的grep操作,找到字符串。检查正确的目录路径…而不是。给出正确的目录路径我尝试使用绝对路径,结果相同:(