ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 1 对文件中数据的计算 awk可以对文件就有强的列处理能力,awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理。 现有数据文件**testfile/d3.dat**,其内容如下: ``` 1 2 2 3 3 2 4 1 ``` ## 1.2  计算第一列数据的和 ```shell cat testfile/d3.dat | awk 'BEGIN{sum=0} {sum=sum+$1} END{print "sum=" sum}' ``` ## 1.3 找出第一列中数据最大值和最小值 ```shell echo"------ 找出第一列中数据最大值 -----------" cat testfile/d3.dat | awk 'NR==1{max=$1;next} {max=max>$1?max:$1}END{print "max=" max}' echo"------ 找出第一列中数据最小值 -----------" cat testfile/d3.dat | awk 'NR==1{min=$1;next} {min=min<$1?min:$1}END{print "min=" min} ' ``` ## 1.4 计算第一列数据的平均值 ```shell echo"------ 求第一列中数据平均值 -----------" cat testfile/d3.dat | awk 'BEGIN{sum=0} {sum+=$1} END{print "ave=" sum/NR}' ``` # 2 获取文件第二列并排序和去重 ```shell echo "------ 求第二列中数据升序排序 -----------" cat testfile/d3.dat | awk '{print $2}' | sort echo "------ 求第二列中数据升序排序并去重 -----------" cat testfile/d3.dat | awk '{print $2}' | sort -u echo "------ 求第二列中数据升序排序并去重 -----------" cat testfile/d3.dat | awk '{print $2}' | sort | uniq echo "------ 求第二列中数据降序排序 -----------" cat testfile/d3.dat | awk '{print $2}' | sort -r ``` # 3 指定行的操作 ## 3.1 获取文件的行数 ```shell cat testfile/d3.dat | awk 'END{print NR}' ``` ## 3.2 获取文件第2行数据 ```shell cat testfile/d3.dat | awk 'NR==2{print $0}' ``` ## 3.3 获取文件第2行第2列的数据 ```shell cat testfile/d3.dat | awk 'NR==2{print $2}' ``` # 4 常用行数 ~~~ 函数名 作用 toupper(s)返回s的大写 tolower(s) 返回s的小写 length(s) 返回s长度 substr(s,p) 返回字符串s中从p开始的后缀部分 ~~~