Hi,
I'm trying to create an XML sitemap of our dynamic ecommerce sites SEO Friendly URLs and am trying to create the initial page listing.
I have a CSV file that looks like the following and need duplicate the lines based on a value which needs calculating.
domain.com/categories/shopping/shoes/,197
domain.com/categories/shopping/shorts/,58
domain.com/categories/shopping/ties/,5
Where 197, 58 and 5 are the number of products. There are 24 products per page so the domain.com/categories/shopping/shoes/,197 has 8 pages which would be.
domain.com/categories/shopping/shoes/
domain.com/categories/shopping/shoes(2)/
domain.com/categories/shopping/shoes(3)/
domain.com/categories/shopping/ties/,5 only has one page so would be
domain.com/categories/shopping/ties/
If anyone has any idea how todo this or has a sample script I'd be most grateful.
I'm hoping to do this in purely in AWK so I can eventually run it automatically on a windows server.
Many Thanks!
James
panyam
2
somethin like this:
awk -F"," '{c=int($2/24);a="";if(c==0){a=$1;}else{for(i=1;i<=c;i++) a==""?a=$1"("i")":a=a"\n"$1"("i")" }} { print a}' input_file |sed 's!\(.*\)/\(.*\)!\1\2/!
'
aigles
3
A possible solution :
awk -F, '
{
c = int(($2+23)/24);
i = 1;
fmt = "";
while (c--) {
printf "%s" fmt "\n", $1, i++;
fmt = "(%d)"
}
}
' inputfile.csv
inputfile.csv :
domain.com/categories/shopping/shoes/,197
domain.com/categories/shopping/shorts/,58
domain.com/categories/shopping/ties/,5
Output :
domain.com/categories/shopping/shoes/
domain.com/categories/shopping/shoes/(2)
domain.com/categories/shopping/shoes/(3)
domain.com/categories/shopping/shoes/(4)
domain.com/categories/shopping/shoes/(5)
domain.com/categories/shopping/shoes/(6)
domain.com/categories/shopping/shoes/(7)
domain.com/categories/shopping/shoes/(8)
domain.com/categories/shopping/shoes/(9)
domain.com/categories/shopping/shorts/
domain.com/categories/shopping/shorts/(2)
domain.com/categories/shopping/shorts/(3)
domain.com/categories/shopping/ties/
Jean-Pierre.