2015-10-16 66 views
0

我想通過調整字段之間的間距來重新格式化文件。我已設法將內容轉換爲以下格式:awk格式化輸出如何包含浮點數符號

130GLU HB2 383 0.058 5.178 2.925 
    130GLU  CG 384 -0.108 5.065 2.887 
    130GLU HG1 385 -0.079 5.007 2.963 

我無法正確理解的是帶減號的浮標。上述格式由awk '{printf " %6s%7s%5s %5.3f %5.3f %5.3f\n",$1,$2,$3,$4,$5,$6}' file生成。不過,我希望得到以下幾點:

130GLU HB2 383 0.058 5.178 2.925 
    130GLU  CG 384 -0.108 5.065 2.887 
    130GLU HG1 385 -0.079 5.007 2.963 

換句話說,在%5.3f5部分計數數量的字符,在這種情況下佔標誌。我怎樣才能做到這一點?

回答

2

只是一個簡單的變化 - 看看它是否工作:

awk '{printf " %6s%7s%5s % 5.3f % 5.3f % 5.3f\n",$1,$2,$3,$4,$5,$6}' file 
Result: 
    130GLU HB2 383 0.058 5.178 2.925 
    130GLU  CG 384 -0.108 5.065 2.887 
    130GLU HG1 385 -0.079 5.007 2.963 

awk '{printf " %6s%7s%5s %+5.3f %+5.3f %+5.3f\n",$1,$2,$3,$4,$5,$6}' 
Result: 
    130GLU HB2 383 +0.058 5.178 2.925 
    130GLU  CG 384 -0.108 5.065 2.887 
    130GLU HG1 385 -0.079 5.007 2.963 

編輯:

awk '{printf " %6s%7s%5s % 5.3f % 5.3f % 5.3f\n",$1,$2,$3,$4,$5,$6}' file 
Result: 
    130GLU HB2 383 0.058 5.178 2.925 
    130GLU  CG 384 -0.108 5.065 2.887 
    130GLU HG1 385 -0.079 5.007 2.963 
+0

感謝您的回答,但我需要的空格數保持爲3減去符號字符。而且我也需要'+'不要出現。 – sodiumnitrate

+0

@sdiumnitrate那麼第一個有什麼問題呢? – melpomene

+0

@melpomene它有3個空白和負號。它需要3個空格,或2個空格和減號。 – sodiumnitrate