我试图用这个命令替换这个文本,但它不起作用:
sed -e 's/\nnumber2/number2/g' fffff > fffff
这是我的文件包含的内容:
number1;gAMMA
number2;gat
number1;zilla
number2;dog
这是我的预期输出:
number1;gAMMAnumber2;gat
number1;zillanumber2;dog
答案 0 :(得分:1)
awk
救援!
$ awk '/^number2/ {n=1}
{printf "%s"(n?"\n":""), $0; n=0}' file > tmp && mv tmp file
或者设置ORS
并使用print
答案 1 :(得分:1)
sed ':a;N;$!ba;s/\nnumber2/number2/g' fffff > fffff
答案 2 :(得分:1)
正如评论中所提到的,Perl可能更适合这种多线任务:
perl -i.bak -pe 's/(number1[^\n]*)\n/\1/' yourfile.txt
使用Perl可能有更优雅的方法,但这是相当直接的。它还会创建一个.bak
扩展名的备份文件,如果您不想这样做,请省略bak
部分。