linux - 列出 grep 找不到的字符串

标签 linux ubuntu grep

我想在文件中搜索特定的词,然后只显示没有找到的词。到目前为止,以我在这方面的有限技能,我可以找到找到哪些词:

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/

相关文章:

c++ - 如何在 Linux 和 C++ 上迭代 com 端口并打印到控制台?

c - 如何在 Linux 中测量时间?

c - 如何从 C 代码中找到 kernel.shmmax 的值

Linux外壳: Print lines whose first word matches a variable containing special characters

linux - mmap 不适用于高地址内存映射?

c++ - ppoll 中的信号未立即处理

linux - 4 行在包含许多文件的目录中反转 grep 搜索

linux - 如何从apk版本命令返回的结果中去掉\n

ruby - 如何使用 rbenv 配置 bash 环境?

ubuntu - Visudo 不再工作,我该怎么办?