1、if while命令写在一行中
while read a b;do echo $a $b;done < aa.txt
12 13 14
cat aa.txt
12 13 14
if [[ $i -eq 0 || $i -eq 2 ]] ;then env=10.79.40.146:80 ;else env=10.79.40.147:80 ; fi
2、awk 合并两个文件
account cdr
cat account
张三|000001
李四|000002
cat cdr
000001|10
000001|20
000002|30
000002|15
合并后的结果为
张三|000001|10
张三|000001|20
李四|000002|30
李四|000002|15
命令:awk -F \| 'NR==FNR{a[$2]=$0;next}{print a[$1]"|"$2}'
解释:
NR (Number of Record) 表示awk执行所读取的数据行数
FNR (Number of Record in File) 跟NR类似,不同是awk每打开一个新文件,FNR便从0开始重新累计
3、while拼接文件
#将afile文件中的前三行与bfile中的前四行拼接在一起
while read -u3 i && read -u4 j;do
echo $i $j
done 3<afile 4<bfile
4、awk的分组求和
cat file.txt
机构名,姓名,状态,金额
江南 雷明凯 失败 420
江南 雷明勋 成功 300
江南 苟秀华 成功 60
白塔 苟应平 失败 360
白塔 苟应军 失败 180
水观 苟应辉 成功 240
水观 苟应东 失败 60
水观 苟应训 失败 120
水观 苟应勋 成功 360
石滩 侯应明 失败 300
石滩 侯兴文 成功 360
石滩 侯兴华 成功 120
要求:
1、全部金额计数和求和;
2、按状态分类计数和求和;
3、按机构名和状态计数和求和
结果如下:
12 2880 
成功 6 1440
失败 6 1440
江南 成功 2 360
江南 失败 1 420
白塔 失败 2 540
水观 成功 2 600
水观 失败 2 180
石滩 成功 2 480
石滩 失败 1 300
命令:
#!/bin/bash
echo "全部金额计数和求和"
awk '{if(NR!=1){total+=$4;sum++}}END{print total, sum}' file.txt
echo "按照状态计数和求和"
awk '{if(NR!=1){a[$3]+=$4;b[$3]++}}END{for (i in a){print i,a[i],b[i]}}' file.txt
echo "按照机构和状态计数和求和"
#NR!=1 跳过header,a[$1" "$3] 在1 3 之间加入空格,方便最后的排序
awk '{if(NR!=1){a[$1" "$3]+=$4;b[$1" "$3]++}}END{for (i in a){print i,a[i],b[i]}}' file.txt|sort -k 4

shell 中awk、if while 例子的更多相关文章

  1. shell中awk用法

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  2. shell中awk printf的用法

    打印输出时,可能需要指定字段间的空格数,从而把列排整齐.在print函数中使用制表符并不能保证得到想要的输出,因此,可以用printf函数来格式化特别的输出. printf函数返回一个带格式的字符串给 ...

  3. 转载:shell中awk printf的用法

    转载:http://www.linuxawk.com/jiaocheng/83.html 6. printf函数   打印输出时,可能需要指定字段间的空格数,从而把列排整齐.在print函数中使用制表 ...

  4. 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧

    目录 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧 25.1 Shell中的色彩处理 25.2 awk基本应用 25.2.1 概念 25.2.2实例演示 25.3 awk ...

  5. 转shell中的awk用法详解

        awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息 调用awk:   第一种,命令行方式 ...

  6. Shell中特殊符号

    http://blog.chinaunix.net/u1/53027/showart.php?id=482234 在shell中常用的特殊符号罗列如下:# ;    ;;       .       ...

  7. Shell中的正则表达式及字符串处理

    shell里一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所 ...

  8. linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

    tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的she ...

  9. shell 中的特殊符号的含义

    来源:http://blog.sina.com.cn/s/blog_62a151be0100x9rn.html 第四章 基本功 - 特殊符号 学习撰写 script 最迅速的捷径是观摩别人的 scri ...

随机推荐

  1. 页面关键词Meta Keywords和描述Description的优化作用

    前几日有两三个童鞋们问我为什么文章目录页面没有设置关键词,我原先还以为什么关键词,后来才明白是问我为什么不添加Meta Keywords.关于这个问题我直接回应他们说目录页面Meta Keywords ...

  2. javascript 中$符号是代表什么意思!

    $符号在php中是表示变量的特征字符, 在js中它也有很多作用, 一般我们用来命名一个函数名称,获取id的 1. 首先可以用来表示变量, 比如变量 var s='asdsd'或var $s='asda ...

  3. 笔记二、本地git命令

    参考书籍:     <Pro Git>中文版.pdf   git init           // 建立一个git仓库, 本地目录为工作目录, .git目录是中央数据目录 git ini ...

  4. AE 栅格处理

    由RasterDataset得到RasterLayer RasterDataset->RasterLayer IRasterLayer pRasterLayer = new RasterLaye ...

  5. MAVEN “Plugin execution not covered by lifecycle configuration”

    pom文件中报错提示: Plugin execution not covered by lifecycle configuration: net.alchim31.maven:yuicompresso ...

  6. 《c程序设计语言》读书笔记--统计换行数,空格数,tab数

    #include <stdio.h> int main() { int spa = 0,lin = 0,tab = 0; int c; /* spa代表空格个数,tab代表制表符个数,li ...

  7. ERP

    企业资源计划即 ERP (Enterprise Resource Planning),由美国 Gartner Group 公司于1990年提出.企业资源计划是 MRP II(企业制造资源计划)下一代的 ...

  8. IO(二)

    package com.bjsxt.io.buffered; import java.io.BufferedInputStream; import java.io.BufferedOutputStre ...

  9. 关于RotateAnimation的各构造方法的参数

    本文以RotateAnimation的构造方法 讲解. RotateAnimation(float fromDegrees, float toDegrees) 其他构造器的旋转也可参考这副图. Rot ...

  10. 常见NoSQL的特点分析与比较

    3.分类: 3.1(最常见的键值存储) a.临时性的:保存在内存中,可以进行快速的保存和读取操作, 数据有可能丢失 b.永久性:在磁盘上保存数据,可以进行快读的读写(没有内存中快),数据不会丢失 c. ...