これは非常に紛らわしいので、ビルドから発行までのすべての手順を示します。
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 になっていることに注意してください!!!
この時点で、私のプログラムには他のコードはありません。ここで何が欠けていますか?
ありがとう