Как два несортированных текстовых файла разной длины могут отображаться рядом друг с другом (в столбцах) в 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, но хочу, чтобы вывод выводился на стандартный вывод для передачи по конвейеру и т. д. эм>
Решение, которое я придумал, использует sdiff
, а затем передает в sed, чтобы удалить вывод sdiff
добавляет.
sdiff one.txt two.txt | sed -r 's/[<>|]//;s/(\t){3}//'
Я мог бы создать функцию и вставить ее в свой .bashrc
, но наверняка уже существует команда для этого (или потенциально более чистое решение)?