2013-03-11 37 views
0

我有一個文件中的一些這樣的事在列中的值替換增加值和保持格式化不變

TER 
ATOM 18351 C12 PA  1  22.484 26.043 12.870 1.00 0.00  MEMB 
ATOM 18352 H2R PA  1  21.907 26.993 12.853 1.00 0.00  MEMB 
ATOM 18353 H2S PA  1  22.369 25.522 11.895 1.00 0.00  MEMB 
ATOM 18401 C13 PA  1  23.999 26.415 12.988 1.00 0.00  MEMB 
ATOM 18402 H3R PA  1  24.586 25.473 12.934 1.00 0.00  MEMB 
ATOM 18403 H3S PA  1  24.188 26.890 13.975 1.00 0.00  MEMB 
ATOM 18404 C14 PA  1  24.389 27.402 11.877 1.00 0.00  MEMB 
ATOM 18405 H4R PA  1  25.379 27.803 12.184 1.00 0.00  MEMB 
ATOM 18406 H4S PA  1  23.777 28.329 11.879 1.00 0.00  MEMB 
ATOM 18407 C15 PA  1  24.484 26.765 10.484 1.00 0.00  MEMB 
TER 
ATOM 18408 H5R PA  1  23.540 26.275 10.164 1.00 0.00  MEMB 
ATOM 18409 H5S PA  1  25.223 25.936 10.474 1.00 0.00  MEMB 
ATOM 18410 C16 PA  1  24.922 27.998 9.564 1.00 0.00  MEMB 
ATOM 18411 H6R PA  1  25.694 28.592 10.099 1.00 0.00  MEMB 
ATOM 18412 H6S PA  1  24.035 28.658 9.457 1.00 0.00  MEMB 
ATOM 18413 C17 PA  1  25.447 27.503 8.237 1.00 0.00  MEMB 
ATOM 18414 H7R PA  1  25.871 26.479 8.305 1.00 0.00  MEMB 
ATOM 18415 H7S PA  1  26.266 28.169 7.891 1.00 0.00  MEMB 

我想要的1/5列中的每個TER後的增量,從而使輸出文件的樣子例如:

TER 
ATOM 18351 C12 PA  1  22.484 26.043 12.870 1.00 0.00  MEMB 
ATOM 18352 H2R PA  1  21.907 26.993 12.853 1.00 0.00  MEMB 
ATOM 18353 H2S PA  1  22.369 25.522 11.895 1.00 0.00  MEMB 
ATOM 18401 C13 PA  1  23.999 26.415 12.988 1.00 0.00  MEMB 
ATOM 18402 H3R PA  1  24.586 25.473 12.934 1.00 0.00  MEMB 
ATOM 18403 H3S PA  1  24.188 26.890 13.975 1.00 0.00  MEMB 
ATOM 18404 C14 PA  1  24.389 27.402 11.877 1.00 0.00  MEMB 
ATOM 18405 H4R PA  1  25.379 27.803 12.184 1.00 0.00  MEMB 
ATOM 18406 H4S PA  1  23.777 28.329 11.879 1.00 0.00  MEMB 
ATOM 18407 C15 PA  1  24.484 26.765 10.484 1.00 0.00  MEMB 
TER 
ATOM 18408 H5R PA  2  23.540 26.275 10.164 1.00 0.00  MEMB 
ATOM 18409 H5S PA  2  25.223 25.936 10.474 1.00 0.00  MEMB 
ATOM 18410 C16 PA  2  24.922 27.998 9.564 1.00 0.00  MEMB 
ATOM 18411 H6R PA  2  25.694 28.592 10.099 1.00 0.00  MEMB 
ATOM 18412 H6S PA  2  24.035 28.658 9.457 1.00 0.00  MEMB 

另外文件的格式不應該改變。

+0

您最好格式化問題,將值標記爲代碼樣式 – linbo 2013-03-11 09:41:06

回答

0

的Perl:

perl -lane 'if(/TER/){$count++}unless(/TER/){$F[4]=$count;}print "@F"' your_file 

AWK:

awk '/TER/{count++}{$5=count}1' your_file 
0

一個骯髒的方式做到這一點不改變格式,如果列五是唯一一個在你的數據的整數1

perl -pe '$c++if/TER/;s/\b1\b/$c/' input_file