使用unix将计数器添加到特定字符串

时间:2015-10-13 13:11:04

标签: unix awk sed

我正在尝试使用unix向特定字符串添加计数器,我尝试了一些sed和awk命令,但我似乎无法正确执行此操作。

我的输入文件是:

Event_ A     D       L       K
Event_ B     P       R
Event_ C     F       I
Event_ J     K
M
N
O
Event_ Q     S
X
Y
Z
G
T

我希望得到的是:

Event_00000001    A     D       L       K
Event_00000002    B     P       R
Event_00000003    C     F       I
Event_00000004    J     K
M
N
O
Event_00000005    Q     S
X
Y
Z
G
T

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

使用此awk

awk '/^Event/{$1=sprintf("%s%06d", $1,++counter)}1' yourfile

如果字段由\t(Tab)分隔,

awk -F"\t" '/^Event/{$1=sprintf("%s%06d", $1,++counter)}1' OFS='\t' yourfile

<强>测试

$ awk '/^Event/{$1=sprintf("%s%06d", $1,++counter)}1' file
Event_000001 A D L K
Event_000002 B P R
Event_000003 C F I
Event_000004 J K
M
N
O
Event_000005 Q S
X
Y
Z
G
T