長さの異なる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の間に1つのタブを印刷するだけなので、列を適切に配置しません。emacsとvimを使用してこれを行う方法は知っていますが、出力を標準出力に表示してパイピングなどに使用します。
私が思いついた解決策はsdiff
、sedへのパイプを使用して出力を削除しsdiff
ます。
sdiff one.txt two.txt | sed -r 's/[<>|]//;s/(\t){3}//'
私は関数を作成してそれに貼り付けることができます.bashrc
が、確かにこれに対するコマンドはすでに存在しています(または潜在的によりクリーンなソリューション)?