awk之RS、ORS与FS、OFS
来源:互联网 发布:淘宝网女士纱巾 编辑:程序博客网 时间:2024/06/11 12:29
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就是一个替换的过程。
- 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区别与联系
- 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 内置变量FS, OFS, RS, ORS, NR, NF
- Linux中awk后面的RS, ORS, FS, OFS 含义
- awk命令RS FS ORS OFS的区别
- awk内置变量之FNR/NR、FS/OFS、NF、ORS/RS
- awk 中的FS,OFS,ORS的差别
- awk中RS、ORS、FS、OFS的区别和联系小结
- Mybatis前奏【Java Web 开发进化史】——万丈高楼从JDBC开始
- mac下配置matplotlib绘图
- thrift_入门指南
- 【学习】kudu、Impala、交互式查询
- BZOJ 1406 - 伪数论
- awk之RS、ORS与FS、OFS
- 封装性
- HDU 2955 —— Robberies 01背包
- 如何在Android上起一个定时器?
- BootStrap table 数据填充与分页应用总结
- UITableViewDataSource
- struts2 生成下载文件
- C语言中的static关键字
- 命令提示符-C盘转换D盘