跟踪多个文件并从文件中输入搜索词,输出用文件名搜索的项目
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
这目前工作正常,希望添加以下功能: 从 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