En jouant avec awk
j'ai exécuté :
ls -la >> a.txt ; awk {'print $5 $1'} a.txt ;
Cela donne une sortie comme :
53277-rw-------
52347-rw-------
Comment puis-je obtenir un espace entre ces deux parties de la sortie ?
En jouant avec awk
j'ai exécuté :
ls -la >> a.txt ; awk {'print $5 $1'} a.txt ;
Cela donne une sortie comme :
53277-rw-------
52347-rw-------
Comment puis-je obtenir un espace entre ces deux parties de la sortie ?
Changer simplement la ligne en
ls -la >> a.txt ; awk {'print $5 " " $1'} a.txt ;
cela devrait imprimer la sortie avec des espaces.
En espérant que cela aide.
Éditer:
Comme suggéré par McNisse, vous pouvez utiliser printf, ce qui vous fournirait un bon format de sortie
ls -la >> a.txt ; awk {'printf ("%5s\t%s\n", $5, $1)'} a.txt ;
Pour placer l'espace entre les arguments, il suffit d'ajouter " "
, par exemple awk {'print $5" "$1'}
.
Cependant, il n'est pas recommandé de analyser la sortie de la commande ls
, car elle n'est pas fiable et la sortie est destinée aux humains, pas aux scripts. Utilisez donc des commandes alternatives telles que find
ou stat
.
Voici un exemple d'utilisation de GNU stat
:
$ stat -t *
001.txt 23 8 81a4 501 20 1000004 242236402 1 0 0 1460260387 1460260239 1460260239 1460260194 4096
7c1c.txt 21 8 81a4 501 20 1000004 242236595 1 0 0 1460261322 1460260486 1460260486 1460260486 4096
ce qui vous permettra d'obtenir une sortie conviviale pour la machine (sous une forme concise), afin que vous puissiez obtenir exactement ce dont vous avez besoin. Ensuite, utilisez -c
pour utiliser un format spécifique, ou utilisez awk
, cut
ou read
pour obtenir les bonnes colonnes.
Consultez stat --help
pour plus d'options. Par exemple, pour afficher le jour de la modification, consultez cet exemple.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.