AWK 使用技巧
编写服务器脚本经常使用到 AWK,收集整理 AWK 常用操作使用技巧进行分享。
取指定列值
取第 N 列:
1
2
3
4
5
6
7
cat <<EOF | awk '{print $2}'
A 12 2019
A 11 2020
C 20 2019
B 9 2021
D 3 2022
EOF
取首列和尾列值:
1
2
3
4
5
6
7
cat <<EOF | awk '{print $1, $NF}'
A 12 2019
A 11 2020
C 20 2019
B 9 2021
D 3 2022
EOF
加上行号
1
2
3
4
5
6
7
cat <<EOF | awk '{print NR, $0}'
A 12 2019
A 11 2020
C 20 2019
B 9 2021
D 3 2022
EOF
条件筛查
正则匹配:
1
2
3
4
5
6
7
cat <<EOF | awk '/2019$/{print $2}'
A 12 2019
A 11 2020
C 20 2019
B 9 2021
D 3 2022
EOF
指定列正则匹配:
1
2
3
4
5
6
7
cat <<EOF | awk '$3 ~ /19$/ {print $2}'
A 12 2019
A 11 2020
C 20 2019
B 9 2021
D 3 2022
EOF
值筛查:
1
2
3
4
5
6
7
cat <<EOF | awk '$3 == 2019 {print $2}'
A 12 2019
A 11 2020
C 20 2019
B 9 2021
D 3 2022
EOF
行筛查:
1
2
3
4
5
6
7
cat <<EOF | awk 'NR == 1 || NR == 3 {print $2}'
A 12 2019
A 11 2020
C 20 2019
B 9 2021
D 3 2022
EOF
求和/求平均值
求和:
1
2
3
4
5
6
7
cat <<EOF | awk '{sum += $2} END{print sum}'
A 12 2019
A 11 2020
C 20 2019
B 9 2021
D 3 2022
EOF
求平均值:
1
2
3
4
5
6
7
cat <<EOF | awk '{sum += $2} END{print sum/NR}'
A 12 2019
A 11 2020
C 20 2019
B 9 2021
D 3 2022
EOF
参考
本文由作者按照 CC BY 4.0 进行授权