awk之RS、ORS与FS、OFS

总结:RS:Record Separator,记录行分隔符,针对行; 把 XX 换成 换行字符ORS:Output Record Separate,输出当前记录行分隔符,针对行; 把换行字符 换成 XXFS:Field Separator,字段分隔符,针对字段;把 YY 换成 空格OFS:Out of Field Separator,输出字段分隔符,针对字段;把 空格 换成 YY; PS:RS、ORS、FS、OFS的英文解释绝不是这样的,这里只是解释清楚。建议去阅读awk的英文读物,其中解释了缩写的含义。

什么是field(字段),什么是record(记录行)?

示例:1.txti 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.txta\n
b\n
c\n
d\n
e\n

该文本总共有5行,每一行都有一个换行符“\n”。所以每行记录都是以“\n”为一个(换行的)标志。

可以用一下方法来理解:

找到某某标志,让每个某某后的内容重新变成一行

示例1.txta|b|c代码:awk 'BEGIN{ RS="|"; } { print $0 }'abb

ORS:可以看成RS的逆向过程

示例1.txtabc

可以这样理解:

观察每一行的“换行符号”,然后将“换行符号”替换成你想要的符号。

awk 'BEGIN{ ORS="----" }{ print $0 }' 1.txta----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 }' filenamei love you

OFS:输出的字段分隔符。

这么解释吧,如上例中“i----love----you”,“----”为分隔符(FS),如果我们想改为用其他符号显示可以这样:

awk 'BEGIN{ FS="----";OFS="*****" }{ print $1,$2,$3 }' filenamei*****love*****you

其实OFS还有一个例子

echo "abc" | awk '{ OFS="." } { NF=NF; print NF,$0}'

结果
1.abc

PS:RS与ORS可以说成是一个互逆的过程(↔)也可以看成一个替换的过程,但是看成互逆的过程比较好理解;FS与OFS就是一个替换的过程。

转载:
https://www.cnblogs.com/fhefh/archive/2011/11/16/2251656.html.

linux:awk之RS、ORS与FS、OFS相关推荐

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

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

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

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

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

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

  4. linux rs,Linux中的RS, ORS, FS, OFS

    一.RS 与 ORS 差在哪 我们经常会说,awk是基于行列操作文本的,但如何定义"行"呢?这就是RS的作用.  默认情况下,RS的值是\n.下面通过实例来理解下RS. echo ...

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

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

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

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

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

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

  8. FS\OFS\RS\ORS的使用

    在linux 中,总是会忘记FS\OFS\RS\ORS的使用 下面一张图非常明晰的显示

  9. Linux中awk后面的RS, ORS, FS, OFS 用法

    Linux中awk后面的RS, ORS, FS, OFS 含义 一.RS 与 ORS 差在哪 我们经常会说,awk是基于行列操作文本的,但如何定义"行"呢?这就是RS的作用.   ...

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

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

最新文章

  1. 算法分析与设计——分治法最近点对
  2. 26. Leetcode 206. 反转链表 (链表-反转链表)
  3. SAP系统上线后的变化
  4. tf initializer
  5. java学习笔记(4)
  6. 从JPA到Hibernate的旧版和增强型标识符生成器
  7. python分析犯罪数据_使用 SparkSQL 分析纽约市犯罪数据
  8. 我的编辑器能玩贪吃蛇,一起玩不?
  9. Java中static的用法,初始化块
  10. 酒浓码浓 - js / 前端 / 支付宝,微信合并二维码功能
  11. ubuntu 关机后 自动重启 解决方法
  12. [spring源码学习]一、IOC简介
  13. C语言入门,编写程序,输出两个整数中的较大值。
  14. PAT_乙级_1001_筱筱
  15. 问题:vscode 中用matplotlib 绘图时无法弹窗,不显示图像
  16. 电脑开启任务管理器的n种方法
  17. 网络爬虫在电商定价策略上的应用
  18. 8、go语言:测试与性能调优
  19. [SCOI2012]喵星球上的点名[广义后缀自动机]
  20. 拼多多2亿美元战略投资国美,家电市场将会如何变化?

热门文章

  1. 二叉树,平衡二叉树,B-Tree,B+Tree,跳表详解
  2. 毕业论文开题报告模板
  3. FPGA学习笔记(七): DSB调制解调的仿真
  4. python 缩放图片_python实现按长宽比缩放图片
  5. notifier_chain 内核通知链的学习与使用
  6. Python3的unichr()消失了?不,升级了!
  7. 点击微信内网页a标签直接跳转打开淘宝APP的方法实例
  8. 劳伦斯.拉里.埃里森(甲骨文公司总裁)在耶鲁大学的演讲稿
  9. PageX、clientX、screenX、offsetX、layerX的区别
  10. VTK-修改图片的像素