shell之seq,grep,awk,uniq等命令及正则表达式汇总

1.多行数据汇总为一行

1.txt  |awk -v ORS='","'    '1'
xargs < 1.txt
 cat .txt |xargs                        //方法一、通过xargs命令完成
a=$(cat 1.txt);echo $a                  //方法二、整个文件读入一个变量,然后直接打印
 sed -n '1h;1!H;${g;s/\n/ /g;p;}' 1.txt  //方法三、使用sed把文件读入保持空间,到最后一行时,替换换行符为空格符
 paste -d " " -s < 1.txt
 cat 1.txt | paste -d " " -s  

2.按行切分

split [-bl] file [prefix]
按行切分
split -l  200  1.txt
按大小切分
 -b, --bytes=SIZE:对file进行切分,每个小文件大小为SIZE。可以指定单位b,k,m。
split -b 600k  1.txt

3.awk if 用法



awk '{if ($1==1) print "A"; else if ($1==2) print "B"; else print "C"}'

4.awk 同时匹配多个分割符

awk -F "[: , ]" 

5.awk 求最大值,最小值,求和,求平均值

求最大值:awk 'BEGIN {max = 0} {if ($1+0 > max+0) max=$1} END {print "", max}'
求最小值:awk 'BEGIN {min = 65536} {if ($1+0 < min+0) min=$1} END {print "Min=", min}'
求和:awk '{sum+=$1} END {print "Sum= ", sum}'
求平均值:awk '{sum+=$1} END {print "Avg= ", sum/NR}'
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: