这很令人困惑,所以我将展示我构建问题的所有步骤:
awk 'BEGIN { FS == /\s\s\s\s/ } ;
{
if ( NF == 0 )
next
else
{{ print "-------------NR = " NR "-----------------------NF = " NF }
for (i = 0; i <= NF; i++)
{{ print ( i, $i )} }
}
}' 200_Undercounter_Series.txt > new.txt
产生期望的结果(我只包括了相关的记录):
-------------NR = 9-----------------------NF = 7
0 1. 3510090 Shelf Guard (See SN Breaks)
1 1.
2 3510090
3 Shelf
4 Guard
5 (See
6 SN
7 Breaks)
-------------NR = 10-----------------------NF = 6
0 3515980 Shelf Guard (See SN Breaks)
1 3515980
2 Shelf
3 Guard
4 (See
5 SN
6 Breaks)
请注意记录 9 的字段 1 和 2 的值,以及记录 10 的字段 1。我希望将这 2 条记录与文件的其余部分分开,因此我将记录 9 的字段 2 的值划分为:
if ( NF == 0 )
next
else
{{ print "-------------NR = " NR "-----------------------NF = " NF }
for (i = 0; i <= NF; i++)
{if ( $2 = /[0-9][0-9][0-9][0-9][0-9][0-9][0-9]/)
{ print ( ">>", i, $i)}
else
{ print ( i, $i )}
}
}
}' 200_Undercounter_Series.txt > new.txt
我收到这些结果:
-------------NR = 9-----------------------NF = 7
>> 0 1. 1 Shelf Guard (See SN Breaks)
1 1.
2 0
3 Shelf
4 Guard
5 (See
6 SN
7 Breaks)
-------------NR = 10-----------------------NF = 6
>> 0 3515980 1 Guard (See SN Breaks)
>> 1 3515980
>> 2 1
>> 3 Guard
>> 4 (See
>> 5 SN
>> 6 Breaks)
请注意,不仅“>>”指示符在未指定的记录中($2 = /regex/),而且记录 9 中的字段 2 现在 = 0!!!
此时我的程序中没有其他代码。我在这里想念什么?
谢谢