shell脚本从文件读取内容,grep在其他文件上读取

时间:2013-02-15 11:31:55

标签: shell

我正在开发shell,我想写一个内容,它将读取文件 A 的文件内容,并在文件 B 上执行grep命令。

例如,假设有两个文件

dataFile.log ,其值为

abc

xyz

...依此类推

现在阅读 searchFile.log 上的abc和grep,例如grep abc searchFile.log

我有相同的shell脚本,但想要一个衬垫

for i in "cat dataFile.log" do grep $i searchFile.log done;

3 个答案:

答案 0 :(得分:1)

试试这个:

grep -f dataFile.log searchFile.log

请注意,如果要将grep作为固定字符串,则需要-F,如果要将dataFile.log中的文本与正则表达式匹配,请使用-E-P

答案 1 :(得分:0)

您可以使用grep -f选项:

cat dataFile.log | grep -f searchFile.log

修改

好的,现在我明白了这个问题。您想要使用dataFile.log中的每一行到searchFile.log中的grep。我还看到您有value1|value2|...,因此您需要grep代替egrep

试试这个:

for i in `cat dataFile.log`
do
   egrep "$i" searchFile.log
done

修改2

遵循chepner建议:

egrep -f dataFile.log searchFile.log

答案 2 :(得分:0)

以下内容:它甚至忽略空白行和#comments:

while read FILE; do if [[ "$FILE" != [/a-zA-Z0-9]* ]]; do continue; fi; grep -h pattern "$FILE"; done;

注意:没有编译过这个。