我想在文件中搜索特定的词,然后只显示没有找到的词。到目前为止,以我在这方面的有限技能,我可以找到找到哪些词:
egrep -w "^bower_components|^npm-debug.log" .gitignore
如果我的 .gitignore 文件包含 bower_components 但不包含 npm-debug.log,它将返回 bower_components。我想了解如何要求它仅返回未找到的模式部分。也就是说,我希望它只返回 npm-debug.log。我不想看到文件中与搜索不匹配的所有文本,只希望看到文件中未找到的单个单词。我该怎么做?
最佳答案
我没有适合您的单行本,但一个简短的脚本可以满足您的用例。
file=$1
shift
for var in "$@"
do
found=`grep "^$var" $file`
if [[ -z $found ]]
then
echo $var
fi
done
说明,将第一个参数作为文件名,将任何后续参数作为要在文件中测试的字符串。遍历这些参数并测试 grep 命令的结果以查看它是否返回空。如果是,则未找到该字符串,我们将其打印到控制台。
用法:[脚本名称].gitignore bower_components npm-debug.log
关于linux - 列出 grep 找不到的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47227417/