繁体   English   中英

RS中的awk正则表达式

[英]awk regular expression in RS

我的档案是这样的

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=

它没有参加第二场比赛。 请帮忙

将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}'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM