Exécutez la commande ls
sur le répertoire actuel et obtenez la sortie:
$ ls
Applications Documents Library Music Public
Desktop Downloads Movies Pictures
Je voudrais les énumérer comme:
1. Applications
2. Desktop
3. Documents
4. Downloads
5. Library
6. Movies
7. Music
8. Pictures
9. Public
Cela pourrait être réalisé en utilisant less
de manière intermédiaire
ls | less -N
Comment les énumérer de manière simple?
command-line
Calcul
la source
la source
Réponses:
Ou faites simplement:
de
man nl
:la source
Vous devez diriger la sortie de
ls
vers une autre commande. Ma suggestion est d'utiliserawk
de cette façon :Veuillez noter que le fichier
file\nnewline
contient un caractère de nouvelle ligne\n
dans son nom qui est échappé par l'option-b
.l'option
--group-directories-first
affichera les répertoires avant les fichiers.Une autre façon possible est d'utiliser for loop (mais dans ce cas, placer les répertoires au début de la liste deviendra plus difficile):
la source
si simplement afficher un numéro est le cas, alors vous avez plusieurs options comme suit ainsi que votre
less -N
chemin:Si vous souhaitez une numérotation de sortie personnalisée, je vous suggère d'utiliser
find
et de faire tout ce que vous souhaitez imprimer:POSIX, vous feriez:
la source
i
doit être initialisé au préalable:i=0; find ...
-exec sh -c '....'
s'exécute sous un shell sh séparé.Vous pouvez également le faire entièrement avec un court script Bash:
Vous pouvez même être fantaisie et saisir le numéro de ligne pour plus de 9 résultats:
Usage
En supposant que vous avez enregistré le script en tant que fichier exécutable
numbered-ls.sh
dans le répertoire de travail actuel:L'argument
DIRECTORY
est facultatif et correspond par défaut au répertoire de travail actuel.Explication
Si le script a été invoqué avec un argument, remplacez le répertoire de travail par le chemin du premier argument.
Faites correspondre toutes les entrées du répertoire de travail actuel et regardez-les. Pour chaque entrée, incrémentez un compteur et imprimez sa valeur avec le nom de l'entrée. Les caractères de saut de ligne dans le nom de l'entrée sont remplacés par
^N
.Dirigez la sortie
cat -vt
pour gérer avec élégance les noms de fichiers qui contiennent des caractères non imprimables que le terminal peut interpréter comme des caractères de contrôle.la source