我想跟踪一个不断写入的日志文件,但想排除各种“常见”条目,这样我就只能看到抛出的错误等。我可以通过管道连接到 grep -v“pattern”,但理想情况下,我想使用包含要跳过的条目的文件。有什么想法吗?
答案1
您可以grep -v "pattern"
像您说的那样使用。但是不要pattern
使用
`cat file_with_entires_to_skip`
记得包含反引号。因此你的命令将如下所示:
tail -v FILE | grep -v "`cat FILE_WITH_ENTRIES_TO_SKIP`"
答案2
选项-f
允许grep
指定一个包含模式的文件,每行一个模式。请参阅grep(1)
手册页。
此外,unbuffer
某些系统上可用的命令将禁用管道中通常发生的输出缓冲。否则,添加过滤器grep
可能会延迟管道的输出。unbuffer(1)
有关详细信息,请参阅手册页。
答案3
我的 grep 包含一个--exclude-from=FILE
选项,可让我从文件中添加排除模式。我有:
my-macbook-pro:Sun America ianchesal$ grep --version
grep (GNU grep) 2.5.1
所以你可以这样做:
tail -f <file> | grep --exclude-from=excludes.txt
答案4
尝试使用:grep -v -f EXCLUDE_FILENAME_LIST TARGET_FILENAME
EXCLUDE_FILENAME_LIST = 您想要从搜索中 grep 出来的单词列表 TARGET_FILENAME = 您想要 grep 的主要文件