<p>如果您的数据是真正的制表符分隔的,那么您只需使用:</p>
<pre><code>awk -F'\t' '{ whatever }'
</code></pre>
<p>如果是固定宽度字段,则应使用:</p>
<pre><code>gawk 'BEGIN{FIELDWIDTHS="list of field widths"} { whatever }'
</code></pre>
<p>例如:</p>
<pre><code>$ cat file
-1 0 1 1 H 7288.97050 0.00011
0 4 4 8 Be 4941.672 0.035
4 7 3 10 Li -n 33050.581 15.124
$ gawk 'BEGIN{FIELDWIDTHS="4 5 5 5 5 5 12 12"} {print $7}' file
7288.970
4941.672
33050.581
</code></pre>
<p>请注意,FIELDWIDTHS是特定于gawk的。我不知道这些是否是正确的领域宽度或不是你的数据,我只是做了一个大概的估计,以证明该方法。显然,如果您想将其从字段固定转换为制表符分隔,那么这样做很简单:</p>
<pre><code>$ gawk -v OFS='\t' 'BEGIN{FIELDWIDTHS="4 5 5 5 5 5 12 12"} {$1=$1}1' file
-1 0 1 1 H 7288.97050 0.00011
0 4 4 8 Be 4941.672 0.035
4 7 3 10 Li -n 33050.581 15.124
</code></pre>
<p>如果要从每个字段中去掉前导/尾随空格:</p>
<pre><code>$ gawk -v OFS='\t' 'BEGIN{FIELDWIDTHS="4 5 5 5 5 5 12 12"} {$1=$1; gsub(/ /,"")}1' file
-1 0 1 1 H 7288.97050 0.00011
0 4 4 8 Be 4941.672 0.035
4 7 3 10 Li -n 33050.581 15.124
</code></pre>