【发布时间】:2018-03-05 20:49:43
【问题描述】:
我有一个看起来像这样的文件:
file1.txt
rs13339951:45007956:T:C 45007956
rs2838331 45026728
rs5647 12335
rs4687576 5353566
file2.txt
rs13339951 45007956
rs2838331 45026728
rs5647 12335
rs4687576:ATCFHF 5353566
更多说明:
- column1 中的某些值在 2 个文件之间是相同的,但不是全部
- column2 中的值在两个文件之间都是相同的
我想确定 2 个文件中 column1 中的值不同的行。 IE。在我的示例中,这些行 1 和 4。我可以用 diff file1.txt 和 file2.txt 做到这一点。
但是,我想获得这样的结束文件(见下文)。事实上,我的目标是使用 sed 替换另一个文件的名称,以便两个文件完全匹配。
rs13339951:45007956:T:C rs13339951
rs4687576 rs4687576:ATCFHF
【问题讨论】:
-
你试过什么?您可以使用
awk或join来执行此操作。 -
我正在考虑做类似的事情:diff file1.txt file2.txt | grep \^\ part1.txt diff file1.txt file2.txt | grep \^\> | sed's/> //' > part2.txt 并根据位置以某种方式匹配 2 个文件以获得一个文件,如上面的文件。不过,这似乎很笨拙和乏味。我需要同时对 500 多个文件执行此操作,这样一个命令就可以了。