Скажем, у меня есть папка с диапазоном входных / выходных файлов, и я хочу поместить входные файлы в один столбец, а выходные файлы - в другой столбец рядом с первым, чтобы сравнить их:
$ ls
input1.inp input10.inp input2.inp input3.inp input4.inp input5.inp
input6.inp input7.inp input8.inp input9.inp output1.dat output10.dat
output2.dat output3.dat output4.dat output5.dat output6.dat output7.dat
output8.dat output9.dat
И я хотел бы получить вывод:
input1.inp output1.dat
input10.inp output10.dat
input2.inp output2.dat
input3.inp output3.dat
input4.inp output4.dat
input5.inp output5.dat
input6.inp output6.dat
input7.inp output7.dat
input8.inp output8.dat
input9.inp output9.dat
Я предполагаю, что это можно сделать с помощью комбинации ls
и columns
или некоторых других программ / инструментов. Я просто не могу найти хорошую комбинацию команд и / или каналов / перенаправлений. Я подумал, что могу добиться этого с vimdiff
vimdiff <(ls -1 *.inp) <(ls -1 *.dat)
Хотя я предпочел бы, чтобы вывод выводился прямо на экран (stdout (?)).
Ну, немного смущенно и несколько мгновений спустя, я ближе, но не совсем там. Таким образом, используя paste
, я могу довольно близко приблизиться к тому, что хочу:
paste <(ls -1 *.inp) <(ls -1 *.dat)
Это работает, пока имена входных и выходных файлов коррелируют, как в примере, и создаются "по порядку".
input1.inp output1.dat
input10.inp output10.dat
... ...
... ...
input7.inp output7.dat
input8.inp
input9.inp
Однако, если в заказе есть несоответствие, один столбец сдвигается и «совпадения» не выстраиваются.
input1.inp output1.dat
input10.inp output10.dat
... ...
... ...
inputX.inp output7.dat
input7.inp
input8.inp
input9.inp
Очевидно, что то же самое наблюдается с:
diff -y <(ls -1 *.inp) <(ls -1 *.dat)
Очевидно, что выравнивание выходных данных является более серьезной проблемой, чем я себе представлял, поскольку имена файлов различаются либо с различным префиксом, либо с суффиксом. Следовательно, каждая «строка» отличается при использовании diff
.
Я собираюсь закрыть эту топи c, поскольку у меня есть кое-что, что работает прямо сейчас, но не совсем так, как я себе это представлял. Хотя я оставлю это открытым еще ненадолго, потому что у кого-то есть идеи.