9

I downloaded some files using and the files are in the following format:

test.zip?AWSAccesskeyId=XXXXXXX&Expires=00000000&Signature=ZZZZZZZZZZ

Is there any way, to rename those files properly by removing the URL parameters. Also is there any way, to download such files, with proper name(without URL parameter) from wget.

I tried with mmv with the following command:

mmv "*.zip*" "#1.zip"

But I can't find any way to install mmv. I am using CentOS 6. So, please suggest any way, other than this.

Jahid
  • 21,542
  • 10
  • 90
  • 108
biztiger
  • 1,447
  • 4
  • 23
  • 40

3 Answers3

26
for file in *.zip\?*; do mv "$file" "${file%%\?*}"; done

As far as I can tell, there's no option to wget telling it not to include the query string in the local filename. You can use the -O option to specify an explicit filename, and fix the driver script to remove the query string itself.

Barmar
  • 741,623
  • 53
  • 500
  • 612
1
for i in `ls *.zip?*`; do echo $i | cut -f 1 -d \? | xargs -n1 mv $i ; done

sorry to lazy to do checking for spaces in names right now. and unable to test. i don't have access to a bash based system at this moment in time.

WhyteWolf
  • 456
  • 2
  • 9
0

If you have g++ >=4.9.2 then you can install rnm and do:

rnm -ns '/n/.zip' *.zip\?*
# /n/ expands to file name without extension.

Or

rnm -rs '/\.zip\?.*/.zip/' *.zip\?*
Jahid
  • 21,542
  • 10
  • 90
  • 108