Parfois, j'utilise awk. Cependant, c'est un peu rythmé en quelques mois, donc à chaque fois que je l'utilise, j'obtiens "ça? Comment l'utiliser?" Depuis que j'ai fait la recherche sur le net, je liste celles que j'utilise souvent.
Les détails de chaque élément sont les suivants
Supposons que vous ayez un fichier comme celui-ci:
sample.txt
No data1 data2 data3
1 101 102 103
2 201 202 203
3 301 302 303
4 401 402 403
Préparez le script awk comme ci-dessous
sample.awk
{
print $1 " " $3
}
Spécifiez sample.txt après avoir spécifié le script avec l'option -f du terminal.
$ awk -f sample.awk sample.txt
La sortie est la suivante.
No data2
1 102
2 202
3 302
4 402
production
Contient chaque élément dans une ligne.
sample.txt
No data1 data2 data3 <----- $1 = "No", $2 = "data1", $3 = "data2", $4 = "data3"
1 101 102 103
2 201 202 203
3 301 302 303
4 401 402 403
Supposons que vous ayez un fichier comme celui-ci:
sample.txt
No data1 data2 data3
1 101 102 103
2 201 202 203
3 301 302 303
4 401 402 403
Préparez le script awk comme ci-dessous
sample.awk
{
if(NR > 1){
sum1 += $2;
sum2 += $3;
sum3 += $4;
}
}
END {
print sum1 " " sum2 " " sum3;
}
Spécifiez sample.txt après avoir spécifié le script avec l'option -f du terminal.
$ awk -f sample.awk sample.txt
La sortie est la suivante.
1004 1008 1012
Nombre actuel de lignes. Dans cet exemple, la première ligne est le titre, il est donc ignoré.
END
Terminer le traitement. Ici, la valeur totale est sortie.
Supposons que vous ayez un fichier comme celui-ci:
sample.txt
No data1 data2 data3
1 101 102 103 <----- 101 + 102 +Je veux trouver 103.
2 201 202 203
3 301 302 303
4 401 402 403
Préparez le script awk comme ci-dessous
sample.awk
{
sum = 0;
for(i=2; i<=NF; i++) {
sum += $i;
}
print sum;
}
Spécifiez sample.txt après avoir spécifié le script avec l'option -f du terminal.
$ awk -f sample.awk sample.txt
La sortie est la suivante.
0
306
606
906
1206
Contient le nombre d'éléments dans chaque ligne.
Supposons que vous ayez un fichier comme celui-ci:
sample.txt
No,data1,data2,data3
1,101,102,103
2,201,202,203
3,301,302,303
4,401,402,403
Préparez le script awk comme ci-dessous
sample.awk
BEGIN {
FS = ",";
}
{
print $1 " " $3
}
Spécifiez sample.txt après avoir spécifié le script avec l'option -f du terminal.
$ awk -f sample.awk sample.txt
La sortie est la suivante.
No data2
1 102
2 202
3 302
4 402
Position de séparation de chaque élément. La valeur par défaut est vide.
START
Vous pouvez écrire le processus de démarrage.
sample.txt
No,data1,data2,data3
1,101,"102,101",103
2,201,202,203
3,301,"302,101",303
4,401,402,403
Préparez le script awk comme ci-dessous
sample.awk
BEGIN {
FPAT = "([^,]+)|(\"[^\"]+\")"
}
{
print $1 " " $3
}
Spécifiez sample.txt après avoir spécifié le script avec l'option -f du terminal.
$ awk -f sample.awk sample.txt
La sortie est la suivante.
No data2
1 "102,101"
2 202
3 "302,101"
4 402
Chaque élément peut être décrit par une expression régulière.
Recommended Posts