AWK 之 RS、ORS与FS、OFS
字符解释:
RS 记录分隔符 FS 字段分隔符
ORS 输出当前记录分隔符 OFS 输出字段分隔符
示例:
(1)awk 'BEGIN {RS="|";}{print $0}' filename
输出结果文件: a|b|c
(2)awk 'BEGIN {ORS="---"}{print $0}' filename
输出结果文件: a\nb\nc
(3)FS默认"空格"
awk 'BEGIN {FS="---"}{print $1,$2,$3}' filename
输出结果文件: a---b---c---
(4)awk 'BEGIN {FS="---"; OFS="***"}{print $1,$2,$3}' filename
其他:echo "abc" | awk '{OFS="."}{NF=NF;print NF,$0}'
SQL 与 awk 功能互转
表 consumer user
1.某字段去重
select distinct(date) from consumer;
awk '!a[$3]++{print $3}' consumer
select distinct(*) from consumer;
awk '!a[$0]++' consumer
2.按序输出
select id from user order by id;
awk '{a[$1]}END{asorti(a);for(i=1;i<=length(a);i++){print a[i]}}' user
3.取前多少条记录
select * from consumer limit 2;
awk 'NR<=2' consumer
awk 'NR>2{exit}1' consumer #performance is better
4.分组求和:group by/having/sum/count
select id, count(1),sum(cost) from consumer group by id having count(1) > 2;
awk '{a[$1]=a[$1]==""?$2:a[$1]","$2}END{for(i in a){c=spit(a[i],b,",");if(c>2){sum=0;for(j in b){sum+=b[j]};print i"\t"c"\t"sum}}' consumer
5.模糊查询;关键词:like regexp
select name from user where name like 'wang%';
awk '$2 ~/^wang/{print $2}' user
select addr from user where addr like '%bei';
awk '/.*bei$/{print $3}' user
select addr from user where addr like '%bei%';
awk '$3 ~/bei/{print $3}' user
6.多表join关联查询
select a.*,b.* from user a inner join consumer b on a.id=b.id and b.id = 2;
awk 'ARGIND==1{a[$1]=$0;next}{if(($1 in a)&&$1==2){print a[$1]"\t"$2"\t"$3}}' user consumer
7.多表水平联接,union all
select a.* from user a union all select b.* from user b;
awk 1 user user
select a.* from user a union select b.* from user b;
awk '!a[$0]++' user user
8.随机抽样统计,order by rand()
select * from consumer order by rand() limit 2;
awk 'BEGIN{srand();while(i<2){k=int(rand()*10)+1;if(!(k in a)){a[k];i++}}}(NR in a)' consumer
转载于:https://www.cnblogs.com/xyqiu90-365/p/9700576.html
AWK 之 RS、ORS与FS、OFS相关推荐
- awk RS,ORS RT,FS,OFS 含义
变量 说明 $0 表示整个当前行 $1 ~ $n 当前记录的第N个字段 FS 输入字段分隔符(-F相同作用)默认空格 RS 输入记录分割符,默认换行符(即文本是按一行一行输入) RT 代指分隔符,当R ...
- linux awk 区别,linux awk 中 RS,ORS,FS,OFS 区别与联系
今天在学习时偶尔搜索到了这篇文章,觉得不错,转摘一下:http://blog.51yip.com/shell/1151.html 总结 RS,ORS,FS,OFS的区别和联系. 一,RS与ORS 1, ...
- awk中RS,ORS,FS,OFS区别与联系
学习awk时,一定要记得动手去实践,只有在实践中才能发现问题,以下就我在学习中和实践中的经验,总结一下RS,ORS,FS,OFS的区别和联系. 一,RS与ORS 1,RS是记录分隔符,默认的分隔符是\ ...
- linux awk 中 RS,ORS,FS,OFS 区别与联系
今天在学习时偶尔搜索到了这篇文章,觉得不错,转摘一下:http://blog.51yip.com/shell/1151.html 总结 RS,ORS,FS,OFS的区别和联系. 一,RS与ORS 1, ...
- awk内置命令RS,ORS,FS,OFS的使用
Awk内置命令RS, ORS, FS, OFS FS 指定字段列分隔符 OFS 指定输出字段列分隔符 RS指定行分隔符 默认分隔符为\n ORS指定输出行分隔符 FS指定列分隔符,相当于参数-F.OF ...
- [Shell] awk FS,OFS,RS,ORS
FS :是列分隔符,默认是空格 OFS:是输出列的分隔符 RS :是行分隔符,默认是空格 ORS:是输出行的分隔符 [/]# echo "a b c d" | awk '{prin ...
- linux NR==变量,LINUX中详解AWK内建变量FS,NF,NR,RT,RS,ORS,OFS
看了网上好多关于AWK内建变量的文章,这里加上个人的理解和记忆,可以让大家掌握这些变量的基本用法. FS 指定字段un列分隔符(Font Space) [~/AWK_learning]$ echo & ...
- linux awk 区别,awk中RS、ORS、FS、OFS的区别和联系小结
学习awk时,一定要记得动手去实践,只有在实践中才能发现问题,以下就我在学习中和实践中的经验,总结一下RS,ORS,FS,OFS的区别和联系. 一,RS与ORS 1,RS是记录分隔符,默认的分隔符是\ ...
- Linux中awk后面的RS, ORS, FS, OFS 含义
awk之RS.ORS与FS.OFS RS:Record Separator,记录分隔符 ORS:Output Record Separate,输出当前记录分隔符 FS:Field Separator, ...
最新文章
- FZU1669 Right-angled Triangle【毕达哥拉斯三元组】
- 动态切换站点样式(换皮肤)
- Facebook 开源 Instagram 安全工具 Pysa
- 从GBIP到PXI 的发展简史
- 关于安装torch、torchvision包的问题
- WSDM Cup 2019自然语言推理任务获奖解题思路
- 吉哥系列故事――完美队形II(HDU-4513)
- python帮助文档在哪_python文档之查看帮助文档方法
- SpringData_Repository接口概述
- Android应用开发提高篇(2)-----文本朗读TTS(TextToSpeech)
- 如何做相册_苹果手机相册不想让人看怎么办?看这里教你加密
- 学python能做什么-学习python后能做哪方面的工作
- GsonForamt插件的使用
- unity动画实现物体颜色闪烁
- Perl打造溯雪拙劣仿制品
- 妇产科护理学复习重点
- 计算机太极之光,3000多名研究生赛太极,五大太极拳流派名家展风采
- 漂亮的非主流图片(38p)
- android 区分平板,加量不加价!台电首款基于Android 11的平板终上市
- 将自己的 ubuntu 系统制作为ISO镜像