J'ai un fichier qui ressemble à ce qui suit: Je veux reformater cela comme: p> Je veux le numéro des colonnes à configurer. Comment voudriez-vous que avec Bash? Je ne peux penser à rien. P> p>
5 Réponses :
host:~ user$ cat file a b c d e f g h i j k l m host:~ user$ xargs -L3 echo < file a b c d e f g h i j k l m host:~ user$ Replace '3' with how many columns you want.
Ma première pensée était sed 'n; s / \ n / / g' foo code>; Pourquoi n'ai-je pas pensé à utiliser
xargs code> pour la manipulation de texte?
Qui devrait être -n3 code>, pas?
-l code> est
- max-lignes code>,
-n code> est de la
- max-args code>
L'ECHO est l'action par défaut pour le XARGS, donc xargs -l3
Un autre: ou (si vous ne vous souciez pas de la nouvelle ligne finale): p>
Une version légèrement améliorée de la réponse Xargs serait la suivante:
xargs -n3 -r < file
column -x -c 30 /tmp/file a b c d e f g h i j k l m Yes, the spacing isn't exactly what you wanted, but it would handle variable sized inputs "better" (for some definitons of better).
Étant donné que l'opérateur Cependant, après les tests avec de grands fichiers, le << / code> inverse l'ordre des choses, j'ai compris cette approche plus intuitive:
Coller CODE> L'approche s'est avérée être beaucoup plus rapide: p>