不同长度的2个未排序文本文件如何可以是由侧显示侧 (在列) 在一个shell
shell
给定one.txt和two.txt:
one.txt
two.txt
$ cat one.txt apple pear longer line than the last two last line $ cat two.txt The quick brown fox.. foo bar linux skipped a line
显示:
apple The quick brown fox.. pear foo longer line than the last two bar last line linux skipped a line
paste one.txt two.txt几乎可以解决问题,但是并不能很好地对齐列,因为它仅在列1和列2之间打印一个标签。 我知道如何使用emacs和vim做到这一点,但希望将输出显示为stdout以用于管道等。
paste one.txt two.txt
我想出的解决方案使用sdiff,然后通过管道进行sed删除,以sdiff增加输出。
sdiff
sdiff one.txt two.txt | sed -r 's/[<>|]//;s/(\t){3}//'
我可以创建一个函数并将其粘贴在我的函数中,.bashrc但是肯定已经存在一个命令(或者可能存在 更干净的 解决方案)?
.bashrc
您可以使用标记来合并文件(每列一个),并省略标题(例如)pr来执行此操作。-m``-t
pr
-m``-t
pr -m -t one.txt two.txt
输出: