Text-Processing
將包含數千列的文件中的特定列相乘
in 文件看起來像這樣
-17.3644 0.00000000 0.00000000 .... -17.2703 0.00000000 0.00000000 .... -17.1761 0.00000000 0.00000000 .... -16.5173 0.00000000 0.00000000 .... -16.4232 0.00000000 0.00000000 ....
期望的輸出應該是
-173.644 0.00000000 0.00000000 .... -172.703 0.00000000 0.00000000 .... -171.761 0.00000000 0.00000000 .... -165.173 0.00000000 0.00000000 .... -164.232 0.00000000 0.00000000 ....
所以我想將第一列乘以 10,但同時還要保留其他 1000 列。你只列印第一列,
awk '{print $1*10}' infile > outfile
我怎麼能保留其他列?
嘗試
awk '{$1=$1*10 ; print }'
這將改變第一個參數,並列印整行。
要保持格式為 3 位,請使用
awk '{$1=sprintf("%.3f",$1*10);print;}'
用python測試
#!/usr/bin/python import re k=open('p.txt','r') for i in k: k=re.sub(' +',' ',i).split(' ') print float(k[0])*10,k[1],k[2]
輸出
-173.644 0.00000000 0.00000000 -172.703 0.00000000 0.00000000 -171.761 0.00000000 0.00000000 -165.173 0.00000000 0.00000000 -164.232 0.00000000 0.00000000