Comment deux fichiers texte non triés de différentes longueurs peuvent-ils être affichés côte à côte (en colonnes) dans unshell
Donné one.txt
et 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
Afficher:
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
fait presque l'affaire mais n'aligne pas bien les colonnes car il imprime juste un onglet entre les colonnes 1 et 2. Je sais comment faire avec emacs et vim mais je veux que la sortie soit affichée sur stdout pour la tuyauterie ect.
La solution que j'ai proposée utilise sdiff
, puis des tuyaux à sed pour supprimer la sortie sdiff
ajoute.
sdiff one.txt two.txt | sed -r 's/[<>|]//;s/(\t){3}//'
Je pourrais créer une fonction et la coller dans mon .bashrc
mais sûrement une commande pour cela existe déjà (ou une solution plus propre potentiellement)?