Pokud víte, že vstupní soubory nemají žádné karty, použijte expand
zjednodušuje odpověď @oyss:
paste one.txt two.txt | expand --tabs=50
Pokud by ve vstupních souborech mohly být karty, můžete je vždy nejprve rozbalit:
paste <(expand one.txt) <(expand two.txt) | expand --tabs=50
Můžete použít pr
k tomu použijte -m
příznak ke sloučení souborů, jeden na sloupec, a -t
vynechat záhlaví, např.
pr -m -t one.txt two.txt
výstupy:
apple The quick brown fox..
pear foo
longer line than the last two bar
last line linux
skipped a line
Viz také:
- Vytisknout výsledek příkazu vedle sebe
- Kombinovat textové soubory po sloupcích
Abychom trochu rozšířili odpověď @Hasturkuna:ve výchozím nastavení pr
používá pro svůj výstup pouze 72 sloupců, ale je poměrně snadné jej přimět k použití všech dostupných sloupců okna terminálu:
pr -w $COLUMNS -m -t one.txt two.txt
Většina shellů bude ukládat (a aktualizovat) šířka obrazovky vašeho terminálu v $COLUMNS
shell, takže tuto hodnotu pouze předáváme do pr
použít pro nastavení šířky výstupu.
To také odpovídá na otázku @Matt:
Existuje způsob, jak pr automaticky detekovat šířku obrazovky?
Takže ne:pr
sám nedokáže detekovat šířku obrazovky, ale my tomu trochu pomáháme předáním šířky terminálu přes jeho -w
možnost.
Všimněte si, že $COLUMNS
je proměnná prostředí, nikoli proměnná prostředí, takže se neexportuje do podřízených procesů, a proto výše uvedený přístup pravděpodobně nebude fungovat ve skriptech, pouze v interaktivních TTY... viz proměnné prostředí LINES a COLUMNS ztracené ve skriptu pro alternativní přístupy.