awk中RS,ORS,FS,OFS区别与联系
来源:互联网 发布:php文件上传论文大学 编辑:程序博客网 时间:2024/06/07 00:57
学习awk时,一定要记得动手去实践,只有在实践中才能发现问题,以下就我在学习中和实践中的经验,总结一下RS,ORS,FS,OFS的区别和联系。
一、OS和ORS
1.RS是记录分隔符,默认的分隔符是\n,具体用法看下
2.RS默认分割符\n
其实你可以把上面test1文件里的内容理解为,111 222\n333 444\n555 6666,利用\n进行分割。看下一个例子
3.自定义RS分割符
结合上面一个例子,就很容易理解RS的用法了。
4.RS也可能是正则表达式
从例3和例4,我们可以发现一点,当RT是利用RS匹配出来的内容。如果RS是某个固定的值时,RT就是RS的内容。
5.RS为空时
从这个例子,可以看出当RS为空时,awk会自动以多行来做为分割符。
6,ORS记录输出分符符,默认值是\n
把ORS理解成RS反过程,这样更容易记忆和理解,看下面的例子。
二、FS与OFS
1.FS指定列分割符
2.FS也可以用正则
3.FS为空的时候
当FS为空的时候,awk会把一行中的每个字符,当成一列来处理。
4.RS被设定成非\n时,\n会成FS分割符中的一个
222和333之间是有一个\n的,当RS设定成444后,222和333被认定成同一行的二列了,其实按常规思想是二行的一列才对。
5.OFS列输出分隔符
一、OS和ORS
1.RS是记录分隔符,默认的分隔符是\n,具体用法看下
点击(此处)折叠或打开
- [root@krlcgcms01 mytest]# cat test1 //测试文件
- 111 222
- 333 444
- 555 666
点击(此处)折叠或打开
- [root@krlcgcms01 mytest]# awk '{print $0}' test1 //awk 'BEGIN{RS="\n"}{print $0}' test1 这二个是一样的
- 111 222
- 333 444
- 555 666
3.自定义RS分割符
点击(此处)折叠或打开
- [zhangy@localhost test]$ echo "111 222|333 444|555 666"|awk 'BEGIN{RS="|"}{print $0,RT}'
- 111 222 |
- 333 444 |
- 555 666
4.RS也可能是正则表达式
点击(此处)折叠或打开
- [zhangy@localhost test]$ echo "111 222a333 444b555 666"|awk 'BEGIN{RS="[a-z]+"}{print $1,RS,RT}'
- 111 [a-z]+ a
- 333 [a-z]+ b
- 555 [a-z]+
5.RS为空时
点击(此处)折叠或打开
- [zhangy@localhost test]$ cat -n test2
- 1 111 222
- 2
- 3 333 444
- 4 333 444
- 5
- 6
- 7 555 666
- [zhangy@localhost test]$ awk 'BEGIN{RS=""}{print $0}' test2
- 111 222
- 333 444
- 333 444
- 555 666
- [zhangy@localhost test]$ awk 'BEGIN{RS="";}{print "<",$0,">"}' test2 //这个例子看着比较明显
- < 111 222 >
- < 333 444 //这一行和下面一行,是一行
- 333 444 >
- < 555 666 >
从这个例子,可以看出当RS为空时,awk会自动以多行来做为分割符。
6,ORS记录输出分符符,默认值是\n
把ORS理解成RS反过程,这样更容易记忆和理解,看下面的例子。
点击(此处)折叠或打开
- [zhangy@localhost test]$ awk 'BEGIN{ORS="\n"}{print $0}' test1 //awk '{print $0}' test1二者是一样的
- 111 222
- 333 444
- 555 666
- [zhangy@localhost test]$ awk 'BEGIN{ORS="|"}{print $0}' test1
- 111 222|333 444|555 666|
二、FS与OFS
1.FS指定列分割符
点击(此处)折叠或打开
- [zhangy@localhost test]$ echo "111|222|333"|awk '{print $1}'
- 111|222|333
- [zhangy@localhost test]$ echo "111|222|333"|awk 'BEGIN{FS="|"}{print $1}'
- 111
点击(此处)折叠或打开
- [zhangy@localhost test]$ echo "111||222|333"|awk 'BEGIN{FS="[|]+"}{print $1}'
- 111
3.FS为空的时候
点击(此处)折叠或打开
- [zhangy@localhost test]$ echo "111|222|333"|awk 'BEGIN{FS=""}{NF++;print $0}'
- 1 1 1 | 2 2 2 | 3 3 3
4.RS被设定成非\n时,\n会成FS分割符中的一个
点击(此处)折叠或打开
- [zhangy@localhost test]$ cat test1
- 111 222
- 333 444
- 555 666
- [zhangy@localhost test]$ awk 'BEGIN{RS="444";}{print $2,$3}' test1
- 222 333
- 666
222和333之间是有一个\n的,当RS设定成444后,222和333被认定成同一行的二列了,其实按常规思想是二行的一列才对。
5.OFS列输出分隔符
点击(此处)折叠或打开
- [zhangy@localhost test]$ awk 'BEGIN{OFS="|";}{print $1,$2}' test1
- 111|222
- 333|444
- 555|666
- [zhangy@localhost test]$ awk 'BEGIN{OFS="|";}{print $1 OFS $2}' test1
- 111|222
- 333|444
- 555|666
- test1只有二列,如果100列,都写出来太麻烦了吧。
- [zhangy@localhost test]$ awk 'BEGIN{OFS="|";}{print $0}' test1
- 111 222
- 333 444
- 555 666
- [zhangy@localhost test]$ awk 'BEGIN{OFS="|";}{NF=NF;print $0}' test1
- 111|222
- 333|444
- 555|666
0
上一篇:SHELL十三问[转载自CU论坛]
下一篇:CU论坛常用知识点汇总
相关热门文章
- linux 常见服务端口
- xmanager 2.0 for linux配置
- 【ROOTFS搭建】busybox的httpd...
- openwrt中luci学习笔记
- Linux里如何查找文件内容...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- awk中RS,ORS,FS,OFS区别与联系
- 学习awk中RS,ORS,FS,OFS区别与联系
- awk中RS,ORS,FS,OFS区别与联系
- linux awk 中 RS,ORS,FS,OFS 区别与联系
- awk中RS,ORS,FS,OFS区别与联系
- awk中RS,ORS,FS,OFS区别与联系
- awk中RS,ORS,FS,OFS区别与联系
- awk中RS,ORS,FS,OFS区别与联系
- awk中RS,ORS,FS,OFS区别与联系
- awk中RS、ORS、FS、OFS的区别和联系小结
- awk之RS、ORS与FS、OFS
- awk之RS、ORS与FS、OFS
- awk命令RS FS ORS OFS的区别
- linux:awk之RS、ORS与FS、OFS
- Linux中awk后面的RS, ORS, FS, OFS 含义
- awk 内置变量FS, OFS, RS, ORS, NR, NF
- awk 中的FS,OFS,ORS的差别
- awk内置变量之FNR/NR、FS/OFS、NF、ORS/RS
- python之lxml快速上手_Element(二)
- 关于shell中常见功能的实现方式总结
- PHP的json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
- SHELL十三问[转载自CU论坛]
- Ansible自动化运维工具使用
- awk中RS,ORS,FS,OFS区别与联系
- 配置伪分布式Hadoop
- java 多态
- CU论坛常用知识点汇总
- LINUX常见小问题汇总
- SHELL二十篇(读书笔记)
- MyBatis自动生成代码
- IOS打包测试发布环境配置-上篇
- const的用法
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
去码神器
去码软件
landidzu去码动画
去码软件手机版
魔镜mirror去码图片
我才是主角去码汉化apk
去上网app怎么扫码上机
希尔薇安卓去码版
去码
末世军团2019兑换码去哪拿
我才是主角直装去码版
母猫私部男人进得去吗
母兔私部男人进得去吗
祁黄羊去私
新手去健身房要不要请私教
女生去健身房不请私教怎么练
去健身房有必要请私教吗
3d效果图私活去哪接
稗怎么读
稗
敌稗
清稗类钞
稗草
稗读音
稗史集传
宽叶雀稗
稗子酒
夫君被我砍过头. 百柏白稗
去网
去那儿网
去网飞机票特价机
一起去看网宅急看
就我去购网
干妞网
去哪网客服电话
戒网学校可去济南远大
去哪网客服电话人工客服热线
去哪里网
干妞网去
去哪网客服电话人工
去床网