Csv 如何将一个16位数字增加1,以创建5000万条记录

Csv 如何将一个16位数字增加1,以创建5000万条记录,csv,awk,terminal,Csv,Awk,Terminal,我有一个CSV/txt文件,我想增加1以制作5000万条记录: testfile.txt: U|4100000000000001|21|01|CID1000001|PULL_TEST|ACTIVE U|4100000000000002|21|01|CID1000002|PULL_TEST|ACTIVE 这里有一个解决方案 $ awk -F'|' 'NR==1 {OFS=FS; p=substr($5,1,3); f5=substr($5,4)} {whi

我有一个CSV/txt文件,我想增加1以制作5000万条记录:

testfile.txt:
U|4100000000000001|21|01|CID1000001|PULL_TEST|ACTIVE
U|4100000000000002|21|01|CID1000002|PULL_TEST|ACTIVE
这里有一个解决方案

$ awk -F'|' 'NR==1 {OFS=FS; p=substr($5,1,3); f5=substr($5,4)} 
                   {while(i++<10) {print; ++$2; $5=p (++f5)}}' file

U|4100000000000001|21|01|CID1000001|PULL_TEST|ACTIVE
U|4100000000000002|21|01|CID1000002|PULL_TEST|ACTIVE
U|4100000000000003|21|01|CID1000003|PULL_TEST|ACTIVE
U|4100000000000004|21|01|CID1000004|PULL_TEST|ACTIVE
U|4100000000000005|21|01|CID1000005|PULL_TEST|ACTIVE
U|4100000000000006|21|01|CID1000006|PULL_TEST|ACTIVE
U|4100000000000007|21|01|CID1000007|PULL_TEST|ACTIVE
U|4100000000000008|21|01|CID1000008|PULL_TEST|ACTIVE
U|4100000000000009|21|01|CID1000009|PULL_TEST|ACTIVE
$awk-F'|''NR==1{OFS=FS;p=substr($5,1,3);f5=substr($5,4)}

{虽然(i++这里有一个
awk
应该可以,但是只需将
5
更改为
50000000

cat file
U|4100000000000001|21|01|CID1000001|PULL_TEST|ACTIVE

awk -F'|' '{OFS=FS;a=$2;split($5,b,"D");for(i=0;i<5;i++){$2=a+i;$5="CID"b[2]+i;print}}' file
U|4100000000000001|21|01|CID1000001|PULL_TEST|ACTIVE
U|4100000000000002|21|01|CID1000002|PULL_TEST|ACTIVE
U|4100000000000003|21|01|CID1000003|PULL_TEST|ACTIVE
U|4100000000000004|21|01|CID1000004|PULL_TEST|ACTIVE
U|4100000000000005|21|01|CID1000005|PULL_TEST|ACTIVE
cat文件
U | 4100000000000001 | 21 | 01 | CID100001 |拉力测试|激活

awk-F'|''''{OFS=FS;a=$2;split($5,b,“D”);for(i=0;iyou可能还想知道当CID100002变成CID999999时会发生什么,下一个记录应该是什么?祝你好运。在这里再有一个:
U|DID1000001 | CID1000001 | John | Smith | SMS | 1212u | DID1000002 | CID1000002 | Doe