【发布时间】:2017-09-10 08:20:27
【问题描述】:
我对 linux 和 perl 编程相当陌生。我已经用尽了所有搜索选项,没有答案。 我有一个主文件“master.txt”,其中包含所有已知的交互,其中 2 列已知同一行上的项目进行交互。我有一个项目列表“list.txt”,如果它包含在第 1 列和第 2 列中,我希望将其作为从主文件返回结果的搜索条件。所有文件都是制表符分隔的。例如: 如果这是主文件:“master.txt”
AppleP001 BallP002
AppleP002 CatP001
BallP001 DogP001
BallP002 AppleP001
CatP001 AppleP002
DogP001 BallP001
DogP002 ZebraP001
ElephantP001 CardinalP001
FishP001 AntelopeP001
还有这个搜索文件:“list.txt”
Apple
Ball
Cat
Dog
生成的文件应该只在两列中包含 Apple*、Ball*、Cat* 和 Dog*,但删除重复项:
我尝试使用 grep:
grep -f list.txt master.txt > Sub_list.txt
但我明白了:
AppleP001 BallP002
AppleP002 CatP001
BallP001 DogP001
BallP002 AppleP001
CatP001 AppleP002
DogP001 BallP001
DogP002 ZebraP001
如何删除重复项(如果两个项目都在同一行中,则将其视为重复项,无论它们在哪一列中)并从输出文件中删除不相关的数据并获取它?
AppleP001 BallP002
AppleP002 CatP001
BallP001 DogP001
非常感谢任何帮助!谢谢。
【问题讨论】:
-
欢迎来到 SO。请注意,此处的问题应与您的代码 的详细信息(以及失败的原因)有关。查看Help pages,它们简短且内容丰富。
标签: perl unix text-processing