[英]How can I change a character in line every n lines using awk?
假設我有這種文件:
248
STEP: 1
C 0.975156 8.208886 -0.860474
C 1.519935 8.610952 0.374438
C 1.771419 9.990898 0.592491
C 1.418414 10.881772 -0.466490
248
STEP: 6
C 0.985225 8.205446 -0.859378
C 1.520091 8.611807 0.372435
C 1.775156 9.991095 0.588109
C 1.415878 10.886006 -0.465814
約1500000行
我需要這樣:
248
STEP: 1
C 0.975156 8.208886 -0.860474
C 1.519935 8.610952 0.374438
D 1.771419 9.990898 0.592491
C 1.418414 10.881772 -0.466490
248
STEP: 6
C 0.985225 8.205446 -0.859378
C 1.520091 8.611807 0.372435
D 1.775156 9.991095 0.588109
C 1.415878 10.886006 -0.465814
我怎么能用awk / sed /任何東西來實現呢?
awk
解救!
$ awk '/^ STEP/{c=0} /^ C/ && ++c==3{sub(/C/,"D")}1' file
或倒數計時
$ awk '/^ STEP/{c=3} /^ C/ && !--c{sub(/C/,"D")}1' file
如果您的文件中沒有前導空格,請將其也從模式中刪除。 在上面發布的文件中,您有它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.