【发布时间】:2015-04-08 07:20:58
【问题描述】:
我需要从 File1 中搜索一个名称,而不是 File2。如果找到匹配的名称,我需要将其与后面的三行一起打印。
— 文件 1 —
Name1
Name2
Name3
— 文件 2 —
Topic1 ....description...
lineA
lineB
lineC
Name1 ....description...
lineA
lineB
lineC
Name3 ....description...
lineA
lineB
lineC
Topic2 ....description...
lineA
lineB
lineC
Topic3 ....description...
lineA
lineB
lineC
——预期结果——
Name1 ....description...
lineA
lineB
lineC
Name3 ....description...
lineA
lineB
lineC
-
我尝试使用awk查找两个文件之间的匹配,只成功打印
Name1 ....description...(没有lineA-lineC)awk 'BEGIN { while ( getline < "File1" ) arr[$0]++ }( $1 in arr )' File2 -
我知道 grep 命令可用于使用模式打印某些行
grep -A3 /pattern/ file
我现在的问题是我不知道如何组合这两个命令。也许有人可以建议一个 Perl 脚本来运行这些流程?
【问题讨论】:
-
你听说过 unix 管道吗?
-
err nope..我在这个环境中是全新的
-
unix shell 脚本呢? bash 编程?
-
是的..还在学习它..我知道基本格式..
-
我可以认为
File 2中的名称后面总是有一个空格吗?