shell案例分享之根据需求打印输出列表内容-AWK的简单应用!
Posted 龙少。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell案例分享之根据需求打印输出列表内容-AWK的简单应用!相关的知识,希望对你有一定的参考价值。
需求如下内容
以下分别是每个人的语文,数学,英语,历史4个科目的成绩,汇总每个人的总分和计算各科的平均分以列表的形式打印输出内容
[root@server ~]# cat /opt/test.txt
张三 90 72 63 89;李四 95 100 87 88;王五 78 66 82 90;赵六 77 88 99 65;田七 89 66 95 72
实现具体步骤如下
[root@server opt]# cat test.txt
张三 90 72 63 89;李四 95 100 87 88;王五 78 66 82 90;赵六 77 88 99 65;田七 89 66 95 72
[root@server opt]# awk 'BEGIN{RS=";"}{print}' test.txt
张三 90 72 63 89
李四 95 100 87 88
王五 78 66 82 90
赵六 77 88 99 65
田七 89 66 95 72
[root@server opt]# awk 'BEGIN{RS=";"}{print $1}' test.txt
张三
李四
王五
赵六
田七
[root@server opt]# awk 'BEGIN{RS=";"}{print $1 $2}' test.txt
张三90
李四95
王五78
赵六77
田七89
[root@server opt]# awk 'BEGIN{RS=";"}{print $1"\\t" $2}' test.txt
张三 90
李四 95
王五 78
赵六 77
田七 89
[root@server opt]# awk 'BEGIN{RS=";"}{print $1"\\t"$2"\\t"$3"\\t"$4"\\t"$5}' test.txt
张三 90 72 63 89
李四 95 100 87 88
王五 78 66 82 90
赵六 77 88 99 65
田七 89 66 95 72
[root@server opt]# awk 'BEGIN{RS=";";print "姓名\\t""语文\\t""数学\\t""英语\\t""历史\\t"}{print $1"\\t"$2"\\t"$3"\\t"$4"\\t"$5}' test.txt
姓名 语文 数学 英语 历史
张三 90 72 63 89
李四 95 100 87 88
王五 78 66 82 90
赵六 77 88 99 65
田七 89 66 95 72
[root@server opt]# awk 'BEGIN{RS=";";print "姓名\\t""语文\\t""数学\\t""英语\\t""历史\\t""个人总成绩"}{print $1"\\t"$2"\\t"$3"\\t"$4"\\t"$5}' test.txt
姓名 语文 数学 英语 历史 个人总成绩
张三 90 72 63 89
李四 95 100 87 88
王五 78 66 82 90
赵六 77 88 99 65
田七 89 66 95 72
[root@server opt]# awk 'BEGIN{RS=";";print "姓名\\t""语文\\t""数学\\t""英语\\t""历史\\t""个人总成绩"}{sum=$2+$3+$4+$5;yu+=$2;shu+=$3;yin+=$4;li+=$5;print $1"\\t"$2"\\t"$3"\\t"$4"\\t"$5"\\t"sum}' test.txt
姓名 语文 数学 英语 历史 个人总成绩
张三 90 72 63 89 314
李四 95 100 87 88 370
王五 78 66 82 90 316
赵六 77 88 99 65 329
田七 89 66 95 72 322
[root@server opt]# awk 'BEGIN{RS=";";print "姓名\\t""语文\\t""数学\\t""英语\\t""历史\\t""个人总成绩"}{sum=$2+$3+$4+$5;yu+=$2;shu+=$3;yin+=$4;li+=$5;print $1"\\t"$2"\\t"$3"\\t"$4"\\t"$5"\\t"sum}END{print"平均分\\t"yu/NR"\\t"shu/NR"\\t"yin/NR"\\t"li/NR"\\t"}' test.txt
姓名 语文 数学 英语 历史 个人总成绩
张三 90 72 63 89 314
李四 95 100 87 88 370
王五 78 66 82 90 316
赵六 77 88 99 65 329
田七 89 66 95 72 322
平均分 85.8 78.4 85.2 80.8
以上是关于shell案例分享之根据需求打印输出列表内容-AWK的简单应用!的主要内容,如果未能解决你的问题,请参考以下文章