次の行に特定の文字が含まれている場合は、現在の行の次の行をどのように印刷しますか? [コピー]

次の行に特定の文字が含まれている場合は、現在の行の次の行をどのように印刷しますか? [コピー]

次の行がある場合は、その行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")????}}'

$i1行に複数行を印刷し、forループを最後のフィールドまで実行してから、if is次の行に移動してみましたAA。しかし、「if」文の後に何をすべきかわかりません。

誰が私を助けることができますか?

答え1

フロント:

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

関連情報