跟踪多个文件并从文件中输入搜索词,输出用文件名搜索的项目

tail multiple files and input search term from file, output items searched with filenames

这目前工作正常,希望添加以下功能: 从 mygrepitemslist.txt(逐行)管道搜索项目,而不是我明确说明错误 1 ​​和错误 2(如果 space 可以包含在搜索中,则奖励)

换句话说想要读取文件的东西mygrepitemslist.txt 并在此代码示例中通过管道传递给 grep

而不是在下面的代码中: grep "error1\|error2"

mygrepitemslist.txt 有: 错误1 错误 space 错误 3 error4 有多个 spaces

想使用我所拥有的主要是因为我将它用于其他事情并且它很熟悉,只是坚持如何从文件中输入 grep 字符串然后输出与文件名的匹配

tail -Fn0 /var/log/*.log | \
while read line ; do
      echo "$line" | \
      grep "error1\|error2" #pipe mygrepitemslist.txt linebyline here?
      if [ $? = 0 ]
      then
              echo "$line" #how to show error + filename here?
      fi
      done

总的结果是:

想要tail/follow多个文件

搜索从名为 mygrepitemslist.txt 的文件中读取的字符串,每一行都是搜索词

输出为: 匹配文件名的错误搜索

您可以使用 -f 选项来指定带有模式的文件
tail -Fn0 /var/log/*.log | grep -of mygrepitemslist.txt