Tricks Awk
De DocUnix.
Sommaire |
Paramétrage du séparateur de champs
Plusieurs séparateurs de champs avec l'option -F : awk -F'[ /]' ... pour espace et / comme séparateur de champs.
Compter des lignes avec un discriminant de comptage au nieme champs
Pour compter des lignes dans un fichier suivant un discriminant et par champs (dans l'exemple champs 15 avec au moins une ligne puis trié dans l'ordre croissant de nombre de ligne :
awk '/<discriminant>/ { NB[$15]++ } END { for (i in NB ) if (NB[i]>0) print i,NB[i] }' <nom de fichier> | sort -n +1
Passer le nieme champ en minuscule ou en majuscule avec un discriminant
Exemple pour le champs 2:
Minuscule :
awk '{
if ( match($2,"<discriminant>"))
$2=tolower($2);
print $0
}' <fichier>
Majuscule:
awk '{
if ( match($2,"<discriminant>"))
$2=toupper($2);
print $0
}' <fichier>
Passer en majuscule le premier caractère d'une variable
Dans notre cas, la variable s'appelle forname[j], qui été précédemment passé en minuscule:
gsub(/^./, toupper(substr(forname[j],1,1)), forname[j]);

