发布时间:2020-06-25 16:40:03来源:阅读:
[root@localhost ~]#cat urfile
[DEFAULT]
key1=value1
key2=value2
key3=value3
[agent]
key1=value1
key2=value2
key3=value3
[database]
key1=value1
key2=value2
key3=value3
[redis]
key1=value1
key2=value2
key3=value3
需求:
文本开头没有空行,section之间的空行行数不定,最后一个section之后也有n行空行,想将section之间的空行压缩成一行
解法一:
PF大神太绝了,直接一个cat -s urfile就搞定了;将多行空行合并成一行
解法二:
awk除去空行awk NF urfile
但没有做过将多行合并成一行,第一反应是用脚本
不过更喜欢awk一行流
[root@localhost ~]#awk -vRS="" '{print $0"
"}' urfile
开始对这个不是很理解,只是懂将行分隔符替换成空了
[root@localhost ~]#awk -vRS="" '{print NR $0"
"}' urfile
1[DEFAULT]
key1=value1
key2=value2
key3=value3
2[section1]
key1=value1
key2=value2
key3=value3
3[section2]
key1=value1
key2=value2
key3=value3
4[section3]
key1=value1
key2=value2
key3=value3
[root@localhost ~]#awk -vRS="" '{print $0"END"}' urfile
[DEFAULT]
key1=value1
key2=value2
key3=value3END
[section1]
key1=value1
key2=value2
key3=value3END
[section2]
key1=value1
key2=value2
key3=value3END
[section3]
key1=value1
key2=value2
key3=value3END
如果RS被设置为空,那么awk会将连续的空行作为行分隔符,与RS设置成”
+”有什么区别???
1、忽略文件开头和结尾的空行。且文件不以记录分隔符结束,即最后不是空行,会将最后一个记录的尾
去掉
2、设置RT变量未空
3、影响FS变量
这个怎么理解?对于1、2两点,当作习题留给大家自己测试,3我们下节来讲。
总结下RS的3种情况:
1) 非空字符串
以固定字符串作为行分隔符,同时设置变量RT为固定字符串
2) 正则表达式
以正则表达式作为行分隔符,同时设置变量RT为正则表达式实际匹配到的字符串
3) 空字符
以连续的空行作为行分隔符,如果FS为单个字符,会将
强制加入到FS变量中
理解了RS,再来理解ORS就简单了。RS是awk读取文件时的行分隔符,ORS则是awk输出时的行结束符。
更简单的讲,就是awk在输出时,会在每行记录后面增加一个ORS变量所设定的值。
ORS的值只能设定为字符串,默认情况下,ORS的值是
Briz Video Joiner(视频合并软件) v2.10 官方版
495K
DataNumenFileSplitter文件分割合并软件绿色版 v1.0
5.2M
Excel合并器下载
3.46M
Excel合并精灵 v8.0 最新版
2.5M
mp3合并软件(音频合并工具)v9.4 中文版
8.4M
pdf合并软件(pdf文件合并工具)v1.11 官方版
209.0M
大文件分割合并工具 下载
0.19MB
视频合并器 Video Combiner (视频文件合并工具) v1.3.4 官方版
16.8M
金舟视频分割合并软件 v2.5.6.0 官方版
48.49MB
金舟视频分割合并软件下载
48.4M
Abelssoft Easy PDF下载
12.8MB
Merge Excel Files下载
1.62M
Tiff Paging下载
3.62M
pdfbinder下载
1.5M
马赛克视频助手下载
14.0M
2020-03-29
python3调用微软js引擎ChakraCore的方法
DNF:土豪剑魂回归,拥有一本转职书,差点就转成了瞎子!
IE加载项造成的IE无法打开,如何设置管理加载项?
M7650DNF如何将扫描的图片保存为PDF文档,如何修改保存路径?
不同的笔记本进入BIOS设置方法
Win8 Win8.1安装打印机驱动的方法及提示数据无效等错误如何解决
手机搜索不到内存卡音乐
扬天900(YT900)蓝牙商务伴侣充电要求
如何恢复显示器工厂设置