2017-05-08 53 views
0

比方說,我有這樣的文件:如何使用awk更改每行n行的字符?

  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 

與〜150萬線

,我需要有某事像這樣:

  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 /什麼?

+0

這只是改變C與D,根據哪些條件? – Alfabravo

+0

你想要什麼改變? – tso

+0

每三分之一C到D.我有上面提到的這種塊結構多次,並且在每個塊中我需要將第三個C更改爲D – Yoda

回答

1

awk來救援!

$ awk '/^ STEP/{c=0} /^ C/ && ++c==3{sub(/C/,"D")}1' file 

或遞減

$ awk '/^ STEP/{c=3} /^ C/ && !--c{sub(/C/,"D")}1' file 

,如果你的文件不具有前導空格自該模式中刪除它們。在上面的發佈文件中,您擁有它們。

+0

<3謝謝我的英雄! – Yoda

相關問題