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=“”。

#/bin/bash

count1=`cat file1|wc -l`

count2=`cat file2|wc -l`

a=`expr $count1 - $count2`

if [ $a -gt 0 ]then

for((i=1i<=$count2i++))

do

x=${i}"p"

echo "`cat file1|sed -n "$x"` `cat file2|sed -n "$x"`" >>/result.log

done

count=`expr $count2 + 1`

for((j=$countj<=$count1j++))

do

y=${j}"p"

z=${count2}"p"

echo "`cat file1|sed -n "$y"` `cat file2|sed -n "$z"`" >>/result.log

done

elif [ $a -lt 0 ]then

for((i=1i<=$count1i++))

do

x=${i}"p"

echo "`cat file2|sed -n "$x"` `cat file1|sed -n "$x"`" >>/result.log

done

count=`expr $count1 + 1`

for((j=$countj<=$count2j++))

do

y=${j}"p"

z=${count1}"p"

echo "`cat file2|sed -n "$y"` `cat file1|sed -n "$z"`" >>/result.log

done

else

for((k=1k<=$count1k++))

do

f=${k}"p"

echo "`cat file1|sed -n "$f"` `cat file2|sed -n "$f"`" >>/result.log

done

fi

行数小的写在行数大的后面,同行的话直接第二个文件内容写在第一个后面


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

原文地址: https://outofmemory.cn/yw/6271948.html

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

发表评论

登录后才能评论

评论列表(0条)

保存