在多个文件中搜索号码列表并打印

在多个文件中搜索号码列表并打印

我正在尝试从文件夹中的一堆文件中找到文件中列出的几个数字及其接下来的 +16 行。

打印或将输出存储在文件中,但命令未显示任何输出

for i in `cat /home/gemapp/My_data/File_08_09.txt`; do grep -A 16 '$i' *MP.X* ;done

答案1

周围的单引号'$i'使其成为文字;如果您想要$i被 shell 扩展,您应该使用双引号"$i"

但是,最好使用 grep 的-f选项在一次调用中从文本文件中读取模式。假设文件每行包含一个要匹配的字符串,并且它们应该作为固定字符串而不是正则表达式 ( -F) 进行匹配,那么它将类似于

grep -A 16 -F -f /home/gemapp/My_data/File_08_09.txt *MP.X*

相关内容