#1 Le 01/11/2016, à 20:02
- lynn
[RÉSOLU] Awk - de $.. à $...
Bonjour,
Y-a-t-il une syntaxe pour remplacer cette commande
awk '{print $4,$5,$6,$7,$8,$9}' fichier
par
awk '{print $4 à $9}' fichier
ou alors
awk '{print $4 jusqu'au dernier élément}' fichier
Je n'ai rien trouvé dans ce sens dans le man...
Merci.
Dernière modification par lynn (Le 05/11/2016, à 16:35)
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#2 Le 01/11/2016, à 20:35
- Watael
Re : [RÉSOLU] Awk - de $.. à $...
salut,
une boucle de 4 à «nombre de champs».
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 01/11/2016, à 20:36
- k3c
Re : [RÉSOLU] Awk - de $.. à $...
ou
awk '{$1=$2=$3=""; print $0}'
Debian 12 sur Thinkpad reconditionné
Hors ligne
#4 Le 01/11/2016, à 22:06
- lynn
Re : [RÉSOLU] Awk - de $.. à $...
Une boucle fonctionne mais je pensais qu'il y avait plus simple...
awk '{ for (i=4 ; i <= NF ; i++) { printf "%s ",$i } printf "\n"}' fichier
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#5 Le 02/11/2016, à 07:46
- pingouinux
Re : [RÉSOLU] Awk - de $.. à $...
Bonjour,
Tu peux aussi faire ceci :
sed 's/[ \t]\+/ /g' fichier | cut -d" " -f4-
Et si les champs ne sont séparés que par une espace :
cut -d" " -f4- fichier
Ajouté : La commande est à adapter si des caractères d'espacement précèdent le premier champ
sed 's/^[ \t]\+//;s/[ \t]\+/ /g' fichier | cut -d" " -f4-
Dernière modification par pingouinux (Le 02/11/2016, à 07:53)
Hors ligne
#6 Le 02/11/2016, à 08:36
- lynn
Re : [RÉSOLU] Awk - de $.. à $...
Merci à tous. Je vais potasser tout ça.
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne