linux 前文本前两行合并成一行

linux 前文本前两行合并成一行,第1张

将文本中的三行合并成一行,文本内容如图所示

CentOS

sed方法:sed 'NNs/\n/ /g' 123

CentOS

说明:N 追加下一个输入行到模式空间,用了两次把当前行的后两行都追加到了模式空间,即多行模式空间。让后用s将\n换行符替换成空格。最后的g是全局替换即替换所有的\n,若不加g表示只替换第一个。

awk方法:awk 'ORS=NR%3?" ":"\n"{print}' 123

CentOS

NR当前行记录数,ORS输出记录分隔符。'ORS=NR%3?" ":"\n" 为三目运算,即若NR对3取莫为0,ORS=“\n”,不为0,ORS=“”。

首先每个命令中间用分号分隔就可以了

不过,推荐采用脚本来处理这种情况

利用脚本可维护性强,可以重复利用、修改

并且十分方便

在脚本中可以简单的进行命令的罗列,也可以根据语法进行具有一定逻辑关系的执行

玩linux最好要知道怎么写脚本,会方便很多

echo ">1

aa

bbbb

cc

d

>A

dd

aa

xxx"|awk '/^>/{

if(NR!=1) print "\n"

print

next

}

{ printf "%s" ,$0}

 END {printf "\n"}'


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8794026.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存