我的文件是这样的
A0010 A R G 222
ALBXXXXXLE DRIVE - NO N1 Y 2 C 1 0
A R G BOBBY BEARD 1 NC N N 0 0.00
AERXXXX 0.00
NC 22211
A0013
A & A SERVICE CENTER P O BOX 113 - NO N1 Y 2 C 1 0
A & A SERVICE CENTER 1 NC N Y 0 0.00
HARRELLSVILLE 0.00
NC 27942
A0016 A HOME GARDEN SHOP 111 E MAIN STREET 111-111-1110 NO N1 Y 2 U 1 0
HOME GARDEN SHOP PAM 1 NC N Y 0 0.00
AERBDER 0.00
NC 24520
A0039 XXXXXXX HILL APTS. P.O. BOX 604 222-7111 NO N1 Y 2 U 1 0
XXXXXXX HILL APTS. TXXXMAN MORRIS 1 NC Y Y 0 0.00
AERBDER 0.00
NC 27510
我想使用第一列A0010,A0013,A0016,A0039分隔每条记录并加载到数据库中。我尝试使用awk,但它只将第一个匹配作为记录分开。
cat temp1 | gawk 'BEGIN {RS="^[A-Z][0-9][0-9][0-9][0-9]";} {print NR,"and RT=" RT}' | sed -e 's/ \+/ /g'
O / P
1 and RT=A0010
2 and RT=
没有参加第二场比赛。请帮忙
答案 0 :(得分:1)
用以下内容替换你的awk命令:
cat temp1 | awk 'BEGIN {RS="[A-Z][0-9][0-9][0-9][0-9]";} {print NR,"and RT=" RT}'
^
导致您的问题。
修改(根据评论):
如果模式出现在行的开头和中间:
grep -E "^[A-Z][0-9]{3}" temp1 | gawk 'BEGIN {RS="[A-Z][0-9][0-9][0-9][0-9]";} {print NR,"and RT=" RT}'