Page 1 sur 1

[awk] Récupérer la xème colonne jusqu'à la dernière (résolu)

Publié : mer. 24 mars 2010, 07:53
par cassyb
Bonjour,

J'ai un soucis avec awk pour récupérer des données de la xième colonne jusqu'à la dernière (dont l'indice est variable).

Pour que ce soit plus clair, voici un exemple:
Récupérer le nom des fichiers d'un ls -al en sachant qu'un fichier peut avoir des espaces.
(Cet exemple est stupide car un simple ls le fait correctement mais j'ai besoin de savoir le faire avec awk)

Code : Tout sélectionner

ls -al | awk '{print <de l'indice 9 jusqu'à NF> }'
Quel est la syntaxe awk de <de l'indice 9 jusqu'à NF> ?
Merci pour votre aide.

Re: [awk] Comment récupérer la xème colonne jusqu'à la dernière?

Publié : mer. 24 mars 2010, 09:07
par cassyb
J'ai trouvé cette syntaxe:

Code : Tout sélectionner

ls -al | awk ' str=""; { for (i=9;i<=NF;i++) str=str" "$i; print substr(str,2) }'
s'il existe une alternative plus élégante...

Re: [awk] Récupérer la xème colonne jusqu'à la dernière (résolu)

Publié : mer. 24 mars 2010, 11:13
par bennyboy
Salut,

Je fais simplement:

Code : Tout sélectionner

awk '{ for (i=9; i<=NF; i++) printf("%s ", $i)}'
Parce que je suis pas sur de comprendre le coup du str ;-)