下の行で繰り返される場合は、文字を置き換えます。

下の行で繰り返される場合は、文字を置き換えます。

私は次の順序を持​​っています。

N
H
CB
CB
CG1
CG2
C
O
N
H
CB
CB
CG
CD
.
.
.

下の行で「CB」が繰り返される場合は、最初の「CB」を「CA」に置き換えて、次のシーケンスで終わるようにしたいと思います。

N
H
CA
CB
CG1
CG2
C
O
N
H
CA
CB
CG
CD
.
.
.

ベストアンサー1

これは、ファイルを上下に読むと理解しやすくなります。幸いなことtacに(そしてこれがcatまさにそれがやっているので、これは逆です)私たちはそうすることができます。その後、「CB」が表示されている場合はそれを記録でき、次の行(前の行)に「CB」が表示されている場合はそれを編集してから、次のコマンドを使用して後ろから前に反転しますtac

$ tac input | awk '/CB/ && found==1 { $1="CA"; found=0 } /CB/ && found==0 { found=1 } ! /CB/ && found==1 { found=0 } {print}' | tac
N
H
CA
CB
CG1
CG2
C
O
N
H
CA
CB
CG
CD

おすすめ記事