如何用sed合并两行

如何用sed合并两行,第1张

连续两行合并:

用sed:

sed '$!Ns/\n/哪野陵/李戚' filename

用awk:

awk '{if(NR%2==0) ORS="\n"else ORS=""print}' filename

linux文件中连续多行合并http://blog.uouo123.com/post/396.html

sed按条件多行合并为脊扒一行http://blog.uouo123.com/post/397.html

#/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

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

我通过以下测试,发现思路基本没有问题:

一个文本文件a,最后一行是exit 0,一个二进制文件(用系统中的cat测试)

cat a /bin/cat >b

sed -n '1,/^exit 0$/!p' b >c

chmod +x c

./c a

通过以上命令,依次将文本文件a和二进制文件cat合并到b,用sed又把cat的二进制内容提取到 了c文件,将c文件变为可执行,c的扰如饥功能和cat一样。

检测错缓返误:

(1)确保在合并之前你的压缩文件解压正常。

(2)确保前面的文本最后一行是exit 0,并且后面没有空格或空行。确保文本文件中间没有exit 0【可以用sed -n '1,/^exit 0$/p' install.bin >c,对比c文件和原来的文本文件install.sh文件大小、内容一模一样。或者检查解析出来的压缩文件和原来的压缩橡滚文件大小是否相同】


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

原文地址: http://outofmemory.cn/tougao/12143247.html

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

发表评论

登录后才能评论

评论列表(0条)

保存