还是我,可以稍微的修改就可以了,但是有个缺陷后边的数字会超过12,下面同时给出了一个可以在月份超过12自动变成1然后年份添加1的版本,需要哪个自己拷吧
---------------------------------------------
for (( i = 0; i < 10000; i++))
do
awk -F'|' -v var=$i '{for(i=1;i <= NF;i++){if(i==2){printf($2+var*100);}else{if(i==3){printf($3 + var)}else{printf($i)}}if(i
done
----------------------
下面这个版本可以修正第三列月份超过12后自动在年份上添加
--------------------------------------------------------------
for (( i = 0; i < 10000; i++))
do
awk -F'|' -v var=$i '
{
for(i=1;i <= NF;i++){
if(i==2){
printf($2+var*100);
} else {
if(i==3){
f = substr($3, 0, 4);
last = substr($3, 5, 2);
if ((last + var) > 12){
start =int(f + ((last + var) / 12));
end = (last + var) % 12;
}else{
start = f;
end = last + var;
}
printf(start);
printf("%02d", end);
}else{
printf($i)
}
}if(i
}
}
printf("\n")
}' 1.txt >> 2.txt
done
-------------------------------
上面awk展开了可以便于理解,可以自行压缩.或者将单引号('')内的awk语句保存到一个文件内用awk调用比如将awk语句存到了test.awk将上面awk语句改成下面即可
awk -F'|' var=$i -f test.awk 1.txt >> 2.txt