如何通过使用shell命令添加一些修改来插入重复的行?

如何通过使用shell命令添加一些修改来插入重复的行?,shell,Shell,我有一堆数据如下 1,A9600,001_DIF,NA,TIME,startTime 2,A9600,002_DEP,NA,TIME,startTime 3,A9600,003_LIT,NA,TIME,startTime 4,A9600,004_ETC,NA,TIME,startTime 5,B9600,005_CMP,NA,TIME,startTime 6,B9600,006_IMP,NA,TIME,startTime 7,B9600,007_DIF,NA,TIME,startTime

我有一堆数据如下

1,A9600,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
1,A9600,001_DIF,NA,TIME,startTime
1,A9600_1,001_DIF,NA,TIME,startTime
1,A9600_2,001_DIF,NA,TIME,startTime
1,A9600_3,001_DIF,NA,TIME,startTime  
2,A9600,002_DEP,NA,TIME,startTime
2,A9600_1,002_DEP,NA,TIME,startTime
2,A9600_2,002_DEP,NA,TIME,startTime
2,A9600_3,002_DEP,NA,TIME,startTime
....
我希望它们被修改如下

1,A9600,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
1,A9600,001_DIF,NA,TIME,startTime
1,A9600_1,001_DIF,NA,TIME,startTime
1,A9600_2,001_DIF,NA,TIME,startTime
1,A9600_3,001_DIF,NA,TIME,startTime  
2,A9600,002_DEP,NA,TIME,startTime
2,A9600_1,002_DEP,NA,TIME,startTime
2,A9600_2,002_DEP,NA,TIME,startTime
2,A9600_3,002_DEP,NA,TIME,startTime
....

如何使用shell命令实现此目的?

此awk one liner适用于此问题。您只需更改
c
变量即可获得不同的循环时间

 awk -F',' -v c='3' -v OFS="," '7;{old=$2;for(i=1;i<=c;i++){$2=old"_"i;print}}' file

awk-F','-vc='3'-vofs=“,”'7;{old=$2;for(i=1;i此awk单行程序适用于此问题。您只需更改
c
变量即可获得不同的循环时间

 awk -F',' -v c='3' -v OFS="," '7;{old=$2;for(i=1;i<=c;i++){$2=old"_"i;print}}' file

awk-F','-vc='3'-vofs=“,”'7;{old=$2;for(i=1;i这里有一个Perl解决方案,可能需要更多的增强,但这是我得到的(非常欢迎任何更新:D)

文件应包含以下内容:

1,A9600,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
1,A9600,001_DIF,NA,TIME,startTime    
1,A9600_1,001_DIF,NA,TIME,startTime    
1,A9600_2,001_DIF,NA,TIME,startTime    
1,A9600_3,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
2,A9600_1,002_DEP,NA,TIME,startTime
2,A9600_2,002_DEP,NA,TIME,startTime
2,A9600_3,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
3,A9600_1,003_LIT,NA,TIME,startTime
3,A9600_2,003_LIT,NA,TIME,startTime
3,A9600_3,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
4,A9600_1,004_ETC,NA,TIME,startTime
4,A9600_2,004_ETC,NA,TIME,startTime
4,A9600_3,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
5,B9600_1,005_CMP,NA,TIME,startTime
5,B9600_2,005_CMP,NA,TIME,startTime
5,B9600_3,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
6,B9600_1,006_IMP,NA,TIME,startTime
6,B9600_2,006_IMP,NA,TIME,startTime
6,B9600_3,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
7,B9600_1,007_DIF,NA,TIME,startTime
7,B9600_2,007_DIF,NA,TIME,startTime
7,B9600_3,007_DIF,NA,TIME,startTime
输出如下:

1,A9600,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
1,A9600,001_DIF,NA,TIME,startTime    
1,A9600_1,001_DIF,NA,TIME,startTime    
1,A9600_2,001_DIF,NA,TIME,startTime    
1,A9600_3,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
2,A9600_1,002_DEP,NA,TIME,startTime
2,A9600_2,002_DEP,NA,TIME,startTime
2,A9600_3,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
3,A9600_1,003_LIT,NA,TIME,startTime
3,A9600_2,003_LIT,NA,TIME,startTime
3,A9600_3,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
4,A9600_1,004_ETC,NA,TIME,startTime
4,A9600_2,004_ETC,NA,TIME,startTime
4,A9600_3,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
5,B9600_1,005_CMP,NA,TIME,startTime
5,B9600_2,005_CMP,NA,TIME,startTime
5,B9600_3,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
6,B9600_1,006_IMP,NA,TIME,startTime
6,B9600_2,006_IMP,NA,TIME,startTime
6,B9600_3,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
7,B9600_1,007_DIF,NA,TIME,startTime
7,B9600_2,007_DIF,NA,TIME,startTime
7,B9600_3,007_DIF,NA,TIME,startTime
说明:

1,A9600,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
1,A9600,001_DIF,NA,TIME,startTime    
1,A9600_1,001_DIF,NA,TIME,startTime    
1,A9600_2,001_DIF,NA,TIME,startTime    
1,A9600_3,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
2,A9600_1,002_DEP,NA,TIME,startTime
2,A9600_2,002_DEP,NA,TIME,startTime
2,A9600_3,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
3,A9600_1,003_LIT,NA,TIME,startTime
3,A9600_2,003_LIT,NA,TIME,startTime
3,A9600_3,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
4,A9600_1,004_ETC,NA,TIME,startTime
4,A9600_2,004_ETC,NA,TIME,startTime
4,A9600_3,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
5,B9600_1,005_CMP,NA,TIME,startTime
5,B9600_2,005_CMP,NA,TIME,startTime
5,B9600_3,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
6,B9600_1,006_IMP,NA,TIME,startTime
6,B9600_2,006_IMP,NA,TIME,startTime
6,B9600_3,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
7,B9600_1,007_DIF,NA,TIME,startTime
7,B9600_2,007_DIF,NA,TIME,startTime
7,B9600_3,007_DIF,NA,TIME,startTime
perl-ne“print”$\u“x4”
:此部分负责根据
x4
复制
文件中的每一行,每一行将打印4次


perl-pe'$c++;$c eq 1?s/([a-zA-Z]\d+)/$1/g:s/([a-zA-Z]\d+)/$1_${($c-1)}/g;$c eq 4?$c=0:$c=$c'
:此部分负责使用此正则表达式查找
A9600
B9600
,…etc模式\d+
,然后根据
$c
的值将
\n
附加到它,每4次将设置为0,以避免计数超过我们需要的值。

这是一个Perl解决方案,可能需要更多增强,但这是我得到的(非常欢迎任何更新:d)

文件应包含以下内容:

1,A9600,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
1,A9600,001_DIF,NA,TIME,startTime    
1,A9600_1,001_DIF,NA,TIME,startTime    
1,A9600_2,001_DIF,NA,TIME,startTime    
1,A9600_3,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
2,A9600_1,002_DEP,NA,TIME,startTime
2,A9600_2,002_DEP,NA,TIME,startTime
2,A9600_3,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
3,A9600_1,003_LIT,NA,TIME,startTime
3,A9600_2,003_LIT,NA,TIME,startTime
3,A9600_3,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
4,A9600_1,004_ETC,NA,TIME,startTime
4,A9600_2,004_ETC,NA,TIME,startTime
4,A9600_3,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
5,B9600_1,005_CMP,NA,TIME,startTime
5,B9600_2,005_CMP,NA,TIME,startTime
5,B9600_3,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
6,B9600_1,006_IMP,NA,TIME,startTime
6,B9600_2,006_IMP,NA,TIME,startTime
6,B9600_3,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
7,B9600_1,007_DIF,NA,TIME,startTime
7,B9600_2,007_DIF,NA,TIME,startTime
7,B9600_3,007_DIF,NA,TIME,startTime
输出如下:

1,A9600,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
1,A9600,001_DIF,NA,TIME,startTime    
1,A9600_1,001_DIF,NA,TIME,startTime    
1,A9600_2,001_DIF,NA,TIME,startTime    
1,A9600_3,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
2,A9600_1,002_DEP,NA,TIME,startTime
2,A9600_2,002_DEP,NA,TIME,startTime
2,A9600_3,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
3,A9600_1,003_LIT,NA,TIME,startTime
3,A9600_2,003_LIT,NA,TIME,startTime
3,A9600_3,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
4,A9600_1,004_ETC,NA,TIME,startTime
4,A9600_2,004_ETC,NA,TIME,startTime
4,A9600_3,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
5,B9600_1,005_CMP,NA,TIME,startTime
5,B9600_2,005_CMP,NA,TIME,startTime
5,B9600_3,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
6,B9600_1,006_IMP,NA,TIME,startTime
6,B9600_2,006_IMP,NA,TIME,startTime
6,B9600_3,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
7,B9600_1,007_DIF,NA,TIME,startTime
7,B9600_2,007_DIF,NA,TIME,startTime
7,B9600_3,007_DIF,NA,TIME,startTime
说明:

1,A9600,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
1,A9600,001_DIF,NA,TIME,startTime    
1,A9600_1,001_DIF,NA,TIME,startTime    
1,A9600_2,001_DIF,NA,TIME,startTime    
1,A9600_3,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
2,A9600_1,002_DEP,NA,TIME,startTime
2,A9600_2,002_DEP,NA,TIME,startTime
2,A9600_3,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
3,A9600_1,003_LIT,NA,TIME,startTime
3,A9600_2,003_LIT,NA,TIME,startTime
3,A9600_3,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
4,A9600_1,004_ETC,NA,TIME,startTime
4,A9600_2,004_ETC,NA,TIME,startTime
4,A9600_3,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
5,B9600_1,005_CMP,NA,TIME,startTime
5,B9600_2,005_CMP,NA,TIME,startTime
5,B9600_3,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
6,B9600_1,006_IMP,NA,TIME,startTime
6,B9600_2,006_IMP,NA,TIME,startTime
6,B9600_3,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime
7,B9600_1,007_DIF,NA,TIME,startTime
7,B9600_2,007_DIF,NA,TIME,startTime
7,B9600_3,007_DIF,NA,TIME,startTime
perl-ne“print”$\u“x4”
:此部分负责根据
x4
复制
文件中的每一行,每一行将打印4次


perl-pe'$c++;$c eq 1?s/([a-zA-Z]\d+)/$1/g:s/([a-zA-Z]\d+)/$1_${($c-1)}/g;$c eq 4?$c=0:$c=$c'
:此部分负责使用此正则表达式查找
A9600
B9600
,…etc模式\d+
,然后根据
$c
的值将
\n
附加到它上,每4次将设置为0,以避免计数超过我们需要的值。

到目前为止您尝试了什么?您使用的是哪个shell?您是指仅使用shell命令还是其他类似命令(例如)
awk
?awk对我来说也很好。我在centOS上使用bash shell。awk、sed或shell脚本中的其他任何东西都可以。但我想使用loop子句。因为键入特定的数字将是一项耗时的任务。到目前为止,您尝试了什么?您使用的是哪个shell?您是指仅使用shell命令还是其他类似命令(例如)
awk
?awk对我来说也很好。我在centOS上使用bash shell。awk、sed或shell脚本中的任何其他东西都可以。但是我想使用loop子句。因为键入特定的数字将是一项耗时的任务。谢谢你的评论。上面的语句中
7
$2
意味着什么?谢谢你的评论。W在上述声明中,hat
7
2美元是什么意思?