- 论坛徽章:
- 0
|
用脚本如何实现这个功能? --SHELL高手的挑战
我提供个思路,这个确实繁琐了些。
1: 先把所有的分隔符换成","号,
sed -e 's/ /,/g' -e 's/\./,/g' -e 's/-/,/g' 方便awk定位。
2:一段awk 程序:
awk '{
if($13!~/^$/){
while($9<256){
print $1,$6,$7,$8,$9++ ;
}
$8++;
while($8<256){
for(i=0;i<256;i++){
print $1,$6,$7,$8,i;
}$8++;
}
$7++;
while($7<256){
for(j=0;j<256;j++){
for(k=0;k<256;k++){
print $1,$6,$7,j,k;
}
}$7++;
}
$6++;
while($6<$10){
for(l=0;l<256;l++)
for(m=0;m<256;m++){
for(n=0;n<256;n++){
print $1,$6,l,m,n;
}
}
}
}
if($6==$10){
for(o=0;o<$11;o++){
for(p=0;p<256;p++){
for(q=0;q<256;q++){
print $1,$10,o,p,q;
}
}
}
if(o==$11){
for(r=0;r<$12;r++){
for(s=0;s<256;s++){
print $1,$10,$11,r,s;
}
}
if(r==$12){
for(t=0;t<$13;t++){
print $1,$10,$11,$12,t;
}
}
}
}
}else if($10>$9){
for(u=$9;u<$10;u++){
print $1,$6,$7,$8,u;
}
}else{
print $1,$2,$3,$4,$5
}
} |
|