Juicio y bucle de Linux awk

echo 'zhaoy 70 72 74 76 74 72' >> score.txt
echo 'wangl 70 81 84 82 90 88' >> score.txt
echo 'qiane 60 62 64 66 65 62' >> score.txt
echo 'sunw 80 83 84 85 84 85' >> score.txt
echo 'lixi 96 80 90 95 89 87' >> score.txt

Escribe el siguiente contenido en score.txt:

zhaoy 70 72 74 76 74 72
wangl 70 81 84 82 90 88
qiane 60 62 64 66 65 62
sunw 80 83 84 85 84 85
lixi 96 80 90 95 89 87

inserte la descripción de la imagen aquí

juicio

awk '{if($2>=80){print $1;print $2}}' score.txtMuestra el nombre de usuario y la puntuación cuyo segundo campo es mayor que 80, pero puedes ver que el nombre de usuario y la puntuación se muestran en una nueva línea.
inserte la descripción de la imagen aquí

awk 'BEGIN{OFS=" "}{if($2>=80){print $1,$2}}' score.txtMuestra la calificación y el nombre de usuario en la misma línea.
inserte la descripción de la imagen aquí

ciclo

whileEl formato del ciclo es el siguiente:

while(条件表达式)
   awk语句集

doEl formato del ciclo es el siguiente:

do{
    
    
   awk语句集
}while(条件表达式)

forEl formato del ciclo es el siguiente:

for(初始值;判断条件;变量变化语句){
    
    
     awk语句集
}

awk '{sum=0; for(c=2;c<=NF;c++)sum=sum+$c;print sum}' score.txtSe puede calcular el valor total de las puntuaciones correspondientes a cada fila.
inserte la descripción de la imagen aquí

awk '{sum=0; for(c=2;c<=NF;c++){sum=sum+$c;print sum}}' score.txt, el resultado de este cálculo es incorrecto, porque genera los datos calculados para cada fila y columna, y puede ver que a forcontinuación {}, forel ciclo puede hacer que la declaración correspondiente realice operaciones de ciclo.
inserte la descripción de la imagen aquí

Este artículo es una nota de estudio para el día 13 de agosto y el contenido proviene de "100 Lectures on Linux Practical Skills" de Geek Time .

Supongo que te gusta

Origin blog.csdn.net/qq_42108074/article/details/132255117
Recomendado
Clasificación