Comment afficher côte à côte deux fichiers texte non triés de longueurs différentes ? (en colonnes) dans un shell
Étant donné que one.txt
y 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
Affichez :
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 les colonnes correctement car il n'imprime qu'une tabulation entre les colonnes 1 et 2. Je sais comment le faire avec emacs et vim mais je veux que la sortie soit affichée dans stdout pour le piping ect.
La solution que j'ai trouvée utilise sdiff
puis passe à sed pour enlever la sortie sdiff
ajoute.
sdiff one.txt two.txt | sed -r 's/[<>|]//;s/(\t){3}//'
Je pourrais créer une fonction et la mettre dans mon .bashrc
mais il existe sûrement déjà une commande pour cela (ou une nettoyant potentiellement une solution) ?
1 votes
Pas dans un shell, mais cela vaut la peine d'être mentionné : utiliser se mélanger !