Shell-面试题

面试两次,都被问到了,整理一下

数据准备

vim data

111     1
222     3
111     4
111     5
222     2
333     3
444     4
333     3

计算指定列的所有值得和

例如:求取第二列所有值得和

cat data  | awk '{sum+=$2}END{print sum}'
# 结果
25

统计文本行数得方法

#方法1
awk '{print NR}' data | tail -n1
#方法2
wc -l data
# 方法3
wc -l data | awk '{print $1}'

把第一列相同的第二列值相加

cat  data   | awk '{a[$1]+=$2}END{for(i in a) printf  "%s %d\n",i,a[i]}'

把第一列相同的第二列值相加,并按照综合降序排列

降序排列:- n -r -k2(第二列的值)

cat  data   | awk '{a[$1]+=$2}END{for(i in a) printf  "%s %d\n",i,a[i]}'  | sort -n -r -k2

将数据按照第二列值降序排列

sort -n -r -k2 data
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容