Vous pourriez faire quelque chose comme:
ls | cut -c1-20 | columns -W "${COLUMNS:-80}"
(c'est columns
avec un s
de GNU autogen). Ou:
ls | cut -c1-20 | column -c"${COLUMNS:-80}"
Utilisation column
telle que trouvée sur les BSD ou dans bsdmainutils
Debian ou ses dérivés.
zsh
prend également en charge l'impression des choses dans des colonnes, vous pouvez donc définir une fonction comme:
setopt extendedglob
c() print -rC$[COLUMNS/(($1)+2)] -- "${(M)@[2,-1]##?(#c0,$[$1])}"
Et utilisez-le comme:
c 20 *.txt
Pour imprimer la liste des fichiers txt en colonnes, tronquées à 20 caractères.
Et pour le rendre un peu plus fou, vous pouvez ajouter:
command_not_found_handler() {(($1)) && c "$@"}
De cette façon, vous pouvez également faire:
20 *
Ou même:
8+8 *
En supposant un écran de 80 colonnes, j'aime utiliser
ls -F | perl -lne 's/(.{34}).*/$1... /s ; print' | column -x | more
utiliser à la
ls -FC
place pour trier par récence(Sidenote: mon
ls
déjà défile parce qu'il est aliaséls -CF --color | more -r
. Je ne suis pas sûr que ce soit la meilleure pratique ...)la source