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
juicio
awk '{if($2>=80){print $1;print $2}}' score.txt
Muestra 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.
awk 'BEGIN{OFS=" "}{if($2>=80){print $1,$2}}' score.txt
Muestra la calificación y el nombre de usuario en la misma línea.
ciclo
while
El formato del ciclo es el siguiente:
while(条件表达式)
awk语句集
do
El formato del ciclo es el siguiente:
do{
awk语句集
}while(条件表达式)
for
El formato del ciclo es el siguiente:
for(初始值;判断条件;变量变化语句){
awk语句集
}
awk '{sum=0; for(c=2;c<=NF;c++)sum=sum+$c;print sum}' score.txt
Se puede calcular el valor total de las puntuaciones correspondientes a cada fila.
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 for
continuación {}
, for
el ciclo puede hacer que la declaración correspondiente realice operaciones de ciclo.
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 .