学习awk
来源:互联网 发布:mac文件夹图片用照片 编辑:程序博客网 时间:2024/05/17 03:28
awk [-F field-separator] 'script' file(s)awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",-F ':'自定义间隔符':'
假设有数据文件city_code.txt数据如下
jilin:Liao_Yuan_Shi:吉林省-辽源市:0guizhou:Bi_Jie_Di_Qu:贵州省-毕节地区:206ningxia:Yin_Chuan_Shi:宁夏回族自治区-银川市:360hubei:Wu_Han_Shi:湖北省-武汉市:218anhui:Huang_Shan_Shi:安徽省-黄山市:252……
打印汉字城市名:
awk -F ':' '{print $3}' city_code.txt |awk -F '-' '{print $2}'
首先用 awk -F ':' '{print $3}' city_code.txt 以":"间隔打印出类似
吉林省-辽源市
贵州省-毕节地区
宁夏回族自治区-银川市
湖北省-武汉市
安徽省-黄山市
……
再用awk -F '-' '{print $2}'以"-"打印出市名
辽源市
毕节地区
银川市
武汉市
黄山市
……
打印文件有用Tab间隔开
head -5 city_code.txt|awk -F ':' 'BEGIN{print "province\tcity\tcity_code"}{print $1"\t"$2"\t"$4}END{print "that is all" }'
统计编号的和
awk -F ':' 'BEGIN{sum=0}{sum +=$4} END{print sum }' city_code.txt执行顺序是,首先运行BEGIN的内容初始化sum,然后读入每行数据,去$4也就是城市编号加到sum中 读完所有数据以后打印出sum
以上两个综合在一起
head -5 city_code.txt|awk -F ':' 'BEGIN{sum=0;print "province\tcity\tcity_code"}{sum+=$4;print $1"\t"$2"\t"$4}END{print "that is all,sum ="sum }'
打印出安徽省所有市
awk '/anhui/' city_code.txt
打印出安徽省的所有市,并统计编号和
awk -F ':' 'BEGIN{sum=0;print "province\tcity\tcity_code"}/anhui/{sum+=$4;print $1"\t"$2"\t"$4}END{print "that is all,sum ="sum }' city_code.txt
0 0
- Awk学习
- awk学习
- awk学习
- awk学习
- AWK学习
- awk 学习
- awk 学习
- awk学习
- awk学习
- AWK学习
- awk学习
- awk学习
- Awk学习
- awk学习
- awk 学习
- awk学习
- 学习awk
- awk学习
- 鼠标移动
- Android 插件化 动态升级
- Android开发工具Eclipse实用技巧
- ASP.NET与JSP 连接SQL Server基本操作
- 含泪写下一个 开始
- 学习awk
- struts2的执行流程
- C++学习 C++中的抽象类以及接口的区别联系
- 将Android Activity以对话框Dialog形式显示
- 谈长耗时任务的优化
- Linphone-Android源码学习(一)
- java 根据实体类创建映射文件
- 嵌入式 C 语言的可变参数表函数的设计
- 技术