如果下一行包含某些字符,如何打印当前行的下一行?

如果下一行包含某些字符,如何打印当前行的下一行?

如果下一行是b,我想将其添加到该AA行中。

这是我的文件:

AA  
b  
b  
AA  
b  
AA  
b  
b  
b

期望的输出:

AA b b  
AA b  
AA b b b

下面是我正在尝试的代码。

paste -s -d" " file.txt | awk '{for(i=1;i<=NF;i++){if(i > 1 && $i == "AA")????}}'

我在一行中打印了几行,并尝试运行 for 循环到最后一个字段,然后转到下一行 if $iis AA。但我不知道在“if”语句之后要做什么。

谁能帮我?

答案1

正面:

sed -ne '
  /^AA$/b1
  :1
    $!N
    /\nb$/s/\n/ /
    t1
  P;D
' <file

相关内容