如何在脚本中包含和排除字符串

时间:2015-02-05 06:38:53

标签: linux bash

我想编写一个脚本来检查日志,如果日志中的任何行包含include_list.txt中的字符串但是在exclude_list.txt中没有该字符串,则将警报邮件发送给管理员,如下例所示,第2行有字符串“string 4”(在include_list.txt中),但在exclude_list.txt中没有任何内容,只在警告邮件中显示第1行。

会建议如何编写这个脚本吗?很感谢 。

vi exclude_list.txt

 string 1
 string 2
 string 3

vi include_list.txt

 string 4
 string 5
 string 6

例如

 xxx string 4 xxxstring 2
 xxx string 4 xxxxxxxxxx
 xxx xxxxxxx xxxstring 3

1 个答案:

答案 0 :(得分:0)

您可以将grep管道传输给另一个grep用于此目的:

grep -iFf includes file.log | grep -iFf excludes
xxx string 4 xxxstring 2

如果您想匹配excludes中没有相应条目的第二行,请在管道后使用grep -v

grep -iFf includes file.log | grep -ivFf excludes
xxx string 4 xxxxxxxxxx