找到修复长度文件unix的差异

时间:2014-12-25 08:02:37

标签: shell unix awk

我想创建一个shell脚本/命令,它在下面执行:

我有一个固定长度的文件,格式如下

   Column No.    Column Name
   --------------------------
    1-4          Name
    5-8          Number 1
    8-12         Number 2
    12-34        Number 3
    35-45        Some other garbage not of my use

现在,我希望找到Number 1Number 2之间的差异,并将结果放在Number 1的位置。该文件是固定长度的,所以我的差异结果应该放在5-8位。

我尝试使用awk但未完全了解如何做到这一点。

1 个答案:

答案 0 :(得分:1)

使用gnu awk,您可以设置名为FIELDWITHS的参数,如下所示:

cat file
one  number data
two  number more info
threedata   house

awk -v FIELDWIDTHS="5 7 10" '{print $1,$2,$3}' OFS="-*-" file
one  -*-number -*-data
two  -*-number -*-more info
three-*-data   -*-house

所以对于你的数据:

awk -v FIELDWIDTHS="4 4 4 22 10" '{print "NAME=" $1}' file