linux:awk之RS、ORS与FS、OFS
awk之RS、ORS与FS、OFS
RS:Record Separator,记录分隔符
ORS:Output Record Separate,输出当前记录分隔符
FS:Field Separator,字段分隔符
OFS:Out of Field Separator,输出字段分隔符
PS:RS、ORS、FS、OFS的英文解释绝不是这样的,这里只是解释清楚。建议去阅读awk的英文读物,其中解释了缩写的含义。
什么是field(字段),什么是record(记录行)?
示例:
1.txt
- i am a student.
- i like to swim
- hello moto
1代表第一个记录行,2代表第二个记录行,3代表第三个记录行。通过观察我们可以知道总共有3个记录行(record)。
看看第一行:“i am a student”,这一行的每个单词都是一个字段(field)。“i”是一个字段,“am”是一个字段,“a”是一个字段,“student”是一个字段,该行总共有4个字段。
RS与ORS
RS:记录行分隔符
示例:
1.txt
- a\n
- b\n
- c\n
- d\n
- e\n
该文本总共有5行,每一行都有一个换行符“\n”。所以每行记录都是以“\n”为一个(换行的)标志。
可以用一下方法来理解:
找到某某标志,让每个某某后的内容重新变成一行
示例
1.txt
a|b|c
代码:awk 'BEGIN{ RS="|"; } { print $0 }'
a
b
b
ORS:可以看成RS的逆向过程
示例
1.txt
a
b
c
可以这样理解:
观察每一行的“换行符号”,然后将“换行符号”替换成你想要的符号。
awk 'BEGIN{ ORS="----" }{ print $0 }' 1.txt
a----b----c----
FS:字段分隔符
FS默认值为“ (空格)”,如“hello moto”.
在“hello moto”中有一个空格,空格就是hello与moto的分隔符(separator),而hello与moto就为字段(files)。awk以空格来区分。
在看看“i----love----you”,如果我们用命令“awk “{ print $1 }””会看到结果为:
i----love----you
如果想打印出三个字母,通过观察可发现“----”为分隔符。
awk 'BEGIN{ FS="----";}{ print $1,$2,$3 }' filename
i love you
OFS:输出的字段分隔符。
这么解释吧,如上例中“i----love----you”,“----”为分隔符(FS),如果我们想改为用其他符号显示可以这样:
awk 'BEGIN{ FS="----";OFS="*****" }{ print $1,$2,$3 }' filename
i*****love*****you
其实OFS还有一个例子
echo "abc" | awk '{ OFS="." } { NF=NF; print NF,$0}'
结果
1.abc
PS:RS与ORS可以说成是一个互逆的过程(↔)也可以看成一个替换的过程,但是看成互逆的过程比较好理解;FS与OFS就是一个替换的过程。
转自
http://www.cnblogs.com/fhefh/archive/2011/11/16/2251656.html
linux:awk之RS、ORS与FS、OFS的更多相关文章
- linux awk 中 RS,ORS,FS,OFS 区别与联系【转】
linux awk 中 RS,ORS,FS,OFS 区别与联系 http://blog.csdn.net/jesseen/article/details/7992929
- 转 awk中RS,ORS,FS,OFS区别与联系
今天用到awk ofs 看到一篇不错文章 awk中RS,ORS,FS,OFS区别与联系 张映 发表于 2010-12-02 分类目录: shell 标签:awk, FS, OFS, ORS, RS, ...
- awk中RS,ORS,FS,OFS区别与联系
学习awk时,一定要记得动手去实践,只有在实践中才能发现问题,以下就我在学习中和实践中的经验,总结一下RS,ORS,FS,OFS的区别和联系. 一.OS和ORS 1.RS是记录分隔符,默认的分隔符是\ ...
- awk 中 RS,ORS,FS,OFS 区别与联系
一,RS与ORS 1,RS是记录分隔符,默认的分隔符是\n,具体用法看下 [root@krlcgcms01 mytest]# cat test1 //测试文件 111 222 333 444 ...
- Linux中awk后面的RS, ORS, FS, OFS 用法
Linux中awk后面的RS, ORS, FS, OFS 含义 一.RS 与 ORS 差在哪 我们经常会说,awk是基于行列操作文本的,但如何定义“行”呢?这就是RS的作用. 默认情况下,RS的 ...
- Linux中awk后面的RS, ORS, FS, OFS 含义
转载自http://blog.csdn.net/qq416647781/article/details/40649419 一.RS 与 ORS 差在哪 我们经常会说,awk是基于行列操作文本的 ...
- 把文件每隔三行合并成一行(awk之RS、ORS与FS、OFS)
比如文本如下:123abc合并后的结果是:1 2 3a b c #.txt a b c awk之RS.ORS与FS.OFS 转自http://www.cnblogs.com/fhefh/archive ...
- linux awk命令详解
linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...
- linux awk浅析(转)
Awk 是一种非常好的语言,同时有一个非常奇怪的名称.在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧.随着本系列的进展,将讨论更高级的主题,最后将 ...
随机推荐
- lucene 建立索引的过程
时间 -- :: CSDN博客 原文 http://blog.csdn.net/caohaicheng/article/details/ 看lucene主页(http://lucene.apach ...
- 在Windows上启用LDAPs
公司的环境比较特殊, Windows server + Linux desktop, 所以我们希望在server端启用LDAP over SSL功能. 当中走了不少弯路, 网上文章也搜了一大堆, 千辛 ...
- 直接双击运行PowerShell的脚本文件
原来的不支持有空格的路径,由dugu的批处理中找到方法了,利用windows路径的另外的另外表达方式即可,".\路径" 这个东西用的不多啊,使用这个格式后powershell就能不 ...
- 【iCore系列核心板视频教程】之 SDRAM 读写实验
============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...
- hudson安装
Hudson 只是一个持续集成服务器(持续集成工具),要想搭建一套完整的持续集成管理平台, SVN.Maven.Sonar 等工具按需求整合则可. 1. 安装 JDK 并配置环境变量(略) J ...
- GIT: 远程建立一个仓库,然后复制到本地
1. 登录 GIT,创建一个新的仓库 gitskills 2. 创建的时候,要选择 Initialize this repository with a readme ,让GitHub初始化仓库 3. ...
- STM32全球唯一ID读取方法
产品唯一的身份标识非常适合:● 用来作为序列号(例如USB字符序列号或者其他的终端应用)● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性.● 用来激 ...
- MZhong's Resume
MATTHEW.ZHONG Male,27 Age Front-End Developer matthew.zhong@morningstar.com OBJECTIVE My objective i ...
- ifarm 子 父页面方法如何互调
1.iframe子页面调用父页面js函数 子页面调用父页面函数只需要写上window.praent就可以了.比如调用a()函数,就写成: 代码如下: window.parent.a(); 子页面取父页 ...
- delphi 最全日期格式_DateUtils时间单元说明
DateUtils时间单元说明 CompareDate 函数 比较两个日期时间值日期部分的大小 CompareDateTime 函数 比较两个日期时间值的大小 CompareTime 函数 比较两个日 ...