使用sed和awk分别处理文本的双行模式

发布时间:2020-04-06编辑:脚本学堂
使用sed和awk分别处理文本的双行模式,有需要的朋友不妨参考下。

使用sedlinuxjishu/13830.html target=_blank class=infotextkey>awk分别处理文本的双行模式,有需要的朋友不妨参考下。

文本内容:
140203196407011616
140203000108058
140203198809161616
140203000108058
要求结果如下:
140203196407011616,140203000108058
140203198809161616,140203000108058

首先,看下sed代码,sed中的N操作可以追加下一行到模式空间:
[root@station1 ]# cat data
140203196407011616
140203000108058
140203198809161616
140203000108058
[root@station1 ]# sed -e 'N;s/n/,/' data
140203196407011616,140203000108058
140203198809161616,140203000108058

接着来看下awk代码,awk中的没有类似于sed中的N的操作,就是next命令。next操作能够跳过剩余代码的执行,直接执行下一行的操作:
[root@station1 ]# cat data
140203196407011616
140203000108058
140203198809161616
140203000108058

[root@station1 ]# awk 'NR%2==0{print tmp","$0;next}{tmp=$0}' data
140203196407011616,140203000108058
140203198809161616,140203000108058