shell 从文件到文件提取行

ua4mk5z4  于 2023-04-07  发布在  Shell
关注(0)|答案(1)|浏览(108)

我有一个包含许多行的txt文件。

id.txt
xxxx
xxxx
xxxx
xxxx

我有第二个更大的txt文件(2-6 GB),其中包含许多行,包括第一个文件的行。

reference.txt
@xxxx zzz yyyy
1235804864
@abce zzz yyyy
1354867435
@xxxx zzz yyyy
3541687281

我想从第二个文件中提取包含'xxxx'的行和后面的行。
我试过这段代码,但似乎不起作用:

while read p; do grep -A1 "$p" reference.txt > output.txt; done<id.txt
vc6uscn9

vc6uscn91#

我想你只是忘记使用>>(append)而不是>这段代码应该可以工作:

while read -r p; do grep -A 1 -F "$p" "reference.txt" >> output.txt ; done < "id.txt"

相关问题