我想使用awk读取格式化文件。内容如下所示:使用awk格式化读取
1PS1 A1 1 11.197 5.497 7.783
1PS1 A1 1 11.189 5.846 7.700
.
.
.
以下的C格式,这些线是按以下格式 “%5D%5S%5S%5D%8.3f%.3f%8.3f” 其中,前5位是整数(1),接下来的5个位置是字符(PS1),接下来的5个位置是字符(A1),接下来的5个位置是整数(1),接下来的24个位置分成3列8个位置,带有3个小数点浮点数。
我一直在用的只是用“$ 1,$ 2,$ 3”来调用这些由行分隔的行。例如,
cat test.gro | awk 'BEGIN{i=0} {MolID[i]=$1; id[i]=$2; num[i]=$3; x[i]=$4;
y[i]=$5; z[i]=$6; i++} END { ...} >test1.gro
但我遇到了一些问题,这一点,我现在想如上面所讨论的格式化方式来阅读这些文件。
任何想法如何做到这一点?
谢谢。其实,我忘了我可以用gawk使用FIELDWIDTHS选项。 – Greg 2012-03-17 18:56:00
@Greg:如果是'FIELDWIDTHS'解决了你的问题,你不应该接受格伦的答案吗? – dmckee 2012-03-17 19:39:07
谢谢dmckee,进行更正。 – Greg 2012-03-17 21:05:26