我有两个文件,FileA和文件B.文件A包含所有的数据。文件B包含我想要在文件A中找到的感兴趣的序列。我正在使用的实际文件中有超过6000行。grep行从另一个文件中列出一个文件,然后打印上面的序列
文件:
Name1
Apples
Name2
Pears
Name3
Pears
Name4
Grapes
Name5
Apples
文件B:
Apples
Pears
我想写一个UNIX命令或Python脚本,让我只打印感兴趣的序列上方的线。
我已经使用这个命令尝试:
grep -B 1 -f FileB FileA | awk -F '\n' 'ln ~ /^$/ { ln = "matched"; print $1 } $1 ~ /^--$/ { ln = "" }'
,但我得到了下面的列表中没有任何方式的名称为苹果和梨
Name1
Name5
Name2
Name3
我想什么来区分是一样的东西这个:
Apples
Name1
Name5
Pears
Name2
Name3
然后我需要这个列表成为这样的东西:
Apples >Name 1, Name 5
Pear > Name 2, Name 3
我对编程非常陌生,任何建议都会很棒!
您可能想要更改您的问题:命令的grep部分工作正常。这是'awk'命令不符合你的期望。事实上,看看你想要什么样的最终输出,我甚至不会用'grep'或'awk'来打扰,我会直接去Python和它的[fileinput](https://docs.python)。 org/3/library/fileinput.html)库。 – user2926055
在** awk **脚本中,您只是忽略了打印触发打印的水果名称。至于Python,你还没有做任何尝试,所以我们无法帮助你处理你的代码。 – Prune
欢迎来到StackOverflow。请阅读并遵守帮助文档中的发布准则。 [在主题](http://stackoverflow.com/help/on-topic)和[如何提问](http://stackoverflow.com/help/how-to-ask)适用于此处。 StackOverflow不是一个设计,编码,研究或教程服务。 – Prune