想要使用grep in for循环来使用[43] grep行,特殊字符[& ]

时间:2014-11-07 11:35:54

标签: shell unix grep

我正在尝试以下命令:

for i in `cat list_to_216 `; do egrep ResalathTable\[$i\] Res_149 ; done

文件list_to_216包含以下数据:

adv@oam # head list_to_216
715
716
717

,文件Res_149包含:

ResalathTable[715].field1=RIZZ
ResalathTable[715].field2=1
ResalathTable[715].field3=681

我似乎无法获得我需要的正确输出......

4 个答案:

答案 0 :(得分:1)

如果您的模式位于如下文件中,则需要使用-f:

grep -f list_to_216 Res_149

答案 1 :(得分:0)

这应该有效:

while read -r ; do
    grep "ResalathTable\[$REPLY\]" Res_149
done < list_to_216

答案 2 :(得分:0)

grep在这里最简单,但awk应该这样做:

awk 'FNR==NR {a[$0]++;next} {for (i in a) if ($0~i) print}' list_to_216 Res_149

答案 3 :(得分:0)

fgrep应该帮助你完成工作: - )

for i in `cat list_to_216 `
do
    fgrep ResalathTable[$i] Res_149
done