字符解释:

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相关推荐

  1. awk RS,ORS RT,FS,OFS 含义

    变量 说明 $0 表示整个当前行 $1 ~ $n 当前记录的第N个字段 FS 输入字段分隔符(-F相同作用)默认空格 RS 输入记录分割符,默认换行符(即文本是按一行一行输入) RT 代指分隔符,当R ...

  2. linux awk 区别,linux awk 中 RS,ORS,FS,OFS 区别与联系

    今天在学习时偶尔搜索到了这篇文章,觉得不错,转摘一下:http://blog.51yip.com/shell/1151.html 总结 RS,ORS,FS,OFS的区别和联系. 一,RS与ORS 1, ...

  3. awk中RS,ORS,FS,OFS区别与联系

    学习awk时,一定要记得动手去实践,只有在实践中才能发现问题,以下就我在学习中和实践中的经验,总结一下RS,ORS,FS,OFS的区别和联系. 一,RS与ORS 1,RS是记录分隔符,默认的分隔符是\ ...

  4. linux awk 中 RS,ORS,FS,OFS 区别与联系

    今天在学习时偶尔搜索到了这篇文章,觉得不错,转摘一下:http://blog.51yip.com/shell/1151.html 总结 RS,ORS,FS,OFS的区别和联系. 一,RS与ORS 1, ...

  5. awk内置命令RS,ORS,FS,OFS的使用

    Awk内置命令RS, ORS, FS, OFS FS 指定字段列分隔符 OFS 指定输出字段列分隔符 RS指定行分隔符 默认分隔符为\n ORS指定输出行分隔符 FS指定列分隔符,相当于参数-F.OF ...

  6. [Shell] awk FS,OFS,RS,ORS

    FS :是列分隔符,默认是空格 OFS:是输出列的分隔符 RS :是行分隔符,默认是空格 ORS:是输出行的分隔符 [/]# echo "a b c d" | awk '{prin ...

  7. linux NR==变量,LINUX中详解AWK内建变量FS,NF,NR,RT,RS,ORS,OFS

    看了网上好多关于AWK内建变量的文章,这里加上个人的理解和记忆,可以让大家掌握这些变量的基本用法. FS 指定字段un列分隔符(Font Space) [~/AWK_learning]$ echo & ...

  8. linux awk 区别,awk中RS、ORS、FS、OFS的区别和联系小结

    学习awk时,一定要记得动手去实践,只有在实践中才能发现问题,以下就我在学习中和实践中的经验,总结一下RS,ORS,FS,OFS的区别和联系. 一,RS与ORS 1,RS是记录分隔符,默认的分隔符是\ ...

  9. Linux中awk后面的RS, ORS, FS, OFS 含义

    awk之RS.ORS与FS.OFS RS:Record Separator,记录分隔符 ORS:Output Record Separate,输出当前记录分隔符 FS:Field Separator, ...

最新文章

  1. FZU1669 Right-angled Triangle【毕达哥拉斯三元组】
  2. 动态切换站点样式(换皮肤)
  3. Facebook 开源 Instagram 安全工具 Pysa
  4. 从GBIP到PXI 的发展简史
  5. 关于安装torch、torchvision包的问题
  6. WSDM Cup 2019自然语言推理任务获奖解题思路
  7. 吉哥系列故事――完美队形II(HDU-4513)
  8. python帮助文档在哪_python文档之查看帮助文档方法
  9. SpringData_Repository接口概述
  10. Android应用开发提高篇(2)-----文本朗读TTS(TextToSpeech)
  11. 如何做相册_苹果手机相册不想让人看怎么办?看这里教你加密
  12. 学python能做什么-学习python后能做哪方面的工作
  13. GsonForamt插件的使用
  14. unity动画实现物体颜色闪烁
  15. Perl打造溯雪拙劣仿制品
  16. 妇产科护理学复习重点
  17. 计算机太极之光,3000多名研究生赛太极,五大太极拳流派名家展风采
  18. 漂亮的非主流图片(38p)
  19. android 区分平板,加量不加价!台电首款基于Android 11的平板终上市
  20. 将自己的 ubuntu 系统制作为ISO镜像

热门文章

  1. linux笔记 第十七天 加密技术、openssl详解
  2. Java中常用的加密方法(JDK)
  3. sql 拼接同列的值
  4. CSS选择器(中)——高级选择器
  5. URL传递中文、Ajax传递中文,Java如何编码如何解决乱码
  6. 用css sprites(图像拼合技术)优化css加快网站速度[转]
  7. c++学习笔记(4)
  8. 单例对象会被jvm的gc时回收吗_【PHP设计模式】单例模式
  9. Python中的函数(调用、参数、返回值、变量的作用域)
  10. Linux下文件的权限管理及网络连接