使用join命令

时间:2016-06-24 04:12:03

标签: bash performance list shell comparison

这是我正在使用的命令

join -1 1 -2 1 a-sorted.txt b-sorted.txt

我坚信线路末端的\n\r差异不会导致任何结果显示,因为我在列表之间输入了一些重复项以进行检查,并且加入并没有找到它们。

要清楚,我相信一行文件可能会在每行末尾使用\n\r,而另一行可能会在最后使用\r,因此foobar\nfoobar\n\r,但我希望它被认为是相同的。我希望忽略空格。

我正在使用此处的解决方案:https://www.biostars.org/p/63016/

但我不认为考虑到各种各样的换行符。如何比较常见行的这两个文本列表,忽略空格?

1 个答案:

答案 0 :(得分:1)

您可以使用tr bash实用程序忽略空格或任何特殊字符。您需要做的就是

join -1 1 -2 1 <(tr -d '\r' < a-sorted.txt) <(tr -d '\r' < b-sorted.txt)

这样做会从两个文件中删除回车并将它们传递给join实用程序。