2个不同长度的未排序文本文件如何并排显示(在列中)shell
给定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 以进行管道等。
我想出的解决方案使用sdiff
然后管道到 sed 以删除输出sdiff
添加。
sdiff one.txt two.txt | sed -r 's/[<>|]//;s/(\t){3}//'
我可以创建一个函数并将其粘贴在我的.bashrc
但肯定已经存在此命令(或者可能是更清洁的解决方案)?