En jouant avec awk
je suis venu pour exécuter:
ls -la >> a.txt ; awk {'print $5 $1'} a.txt ;
Ceci donne une sortie comme:
53277-rw-------
52347-rw-------
Comment puis-je obtenir un espace entre ces deux amis de sortie?
command-line
text-processing
awk
rɑːdʒɑ
la source
la source
ls
. Cela vous mordra dans le dos tôt ou tard.print $5 $1
awk {'print $5 $1'} a.txt
). Ils demandent comment insérer un espace entre les champs n ° 1 et n ° 5.Réponses:
Il suffit de changer la ligne pour
cela devrait imprimer la sortie avec des espaces.
J'espère que cela t'aides.
Modifier:
Comme suggéré par McNisse, vous pouvez utiliser printf, qui vous fournirait un bon format de sortie
la source
printf
fonction offre un meilleur contrôle, surtout si vous souhaitez formater des nombres.printf("%s\t%s\n", $5, $1)
5s
signifieawk {'printf ("%5s\t%s\n", $5, $1)'}
Une autre technique spécifique à awk, utilisez le "séparateur de champs de sortie"
La virgule est cruciale ici.
la source
$1
àUn moyen simple d'obtenir des onglets est:
la source
Je sais que c'est un vieux fil, mais j'apprends et je trouve ces messages utiles. Ma meilleure solution consistait à utiliser gawk pour insérer des espaces entre les variables.
la source
gawk
,mawk
ou tout autreawk
, ils insèrent tous des espaces si vous utilisez la virgule, comme le dit cette réponse .ls -la | awk '{print $1, $9}'
. Comme muru l'a dit, cegawk
n'est pas nécessaire.Pour placer l'espace entre les arguments, ajoutez simplement
" "
, par exempleawk {'print $5" "$1'}
.Cependant, il n'est pas recommandé d' analyser la sortie de la
ls
commande , car elle n'est pas fiable et que la sortie est destinée aux humains, pas aux scripts. Par conséquent, utilisez des commandes alternatives telles quefind
oustat
.Voici un exemple utilisant GNU
stat
:qui imprimera votre sortie conviviale pour la machine (sous forme abrégée), de sorte que vous puissiez obtenir exactement ce dont vous avez besoin. Utilisez ensuite
-c
pour utiliser le format spécifique, ou l' utilisationawk
,cut
ouread
pour obtenir les colonnes de droite.Vérifiez
stat --help
pour d'autres options. Par exemple, pour imprimer le jour de modification, consultez cet exemple .la source
for i in ls; do $i
).