如何在Shell脚本中使用grep来查找文件中的单词

3

如何使用grep查找用户输入的文件中的确切单词?例如,我需要选择要查找的单词和要在其中查找它的文件。我被告知我已经非常接近了,但是有些东西没有像应该的那样工作。我正在Linux下使用bash shell。

到目前为止,我所做的是:

#!/bin/bash
echo "Find the file you want to search the word in?"
read filename
echo "Enter the word you want to find."  
read word1
grep $word1 $filename

1
你似乎在寻找 grep-F 选项。 - devnull
4个回答

6
我该如何使用grep在用户输入的字符串中查找确切的单词?请尝试使用-F选项。在shell上键入man grep以获取更多详细信息。
grep -F "$word1" "$filename"

建议用引号括起搜索字符串和文件名,以避免因空格而产生意外输出。


不确定为什么最后一行有“fi”。这是不必要的。


1
尝试使用以下命令:
在整个当前目录中搜索,输入:grep -R WORD ./ 在特定文件中搜索,输入:grep WORD ./path/to/file.ext

2
欢迎来到Stack Overflow。请尽快阅读[关于]页面。虽然您添加的有关“-R”的信息是新的,但并不清楚它与问题的背景相关。 "或"的信息已经被理解了。简而言之,您没有为已有的信息添加任何有用的内容。您可以自由地添加这样的答案,但它们相对不太可能被投票,并且可能会让您遭受负面评价。当您在具有现有答案的旧问题中添加新答案时,请确保您正在添加与问题相关的独特和新颖的内容。 - Jonathan Leffler

1
#!/bin/bash/
echo "Find the file you want to search the word in?"   
read filename  
echo "Enter the word you want to find."   
read word  
cat $filename | grep "$word"

这段代码可以在文件中精确查找匹配的单词。

0
如果你想在行内进行精确匹配,请使用以下命令:
grep "\b$word\b"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接