私は次の順序を持っています。
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