replace %20 with space


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers replace %20 with space
# 1  
Old 08-31-2011
replace %20 with space

Hi,

I need torename filenames with %20 to space in a batch wise.Can anyone help me please. Need it badly

Eg.
Code:
English%20Brochure%20002-1[1]

to be replace to
Code:
English Brochure 002-1[1]

Thanks a lot

Moderator's Comments:
Mod Comment Please use [code] and [/code] tags when posting code, data or logs etc. to preserve formatting and enhance readability, thanks. See PM!

Last edited by zaxxon; 08-31-2011 at 05:06 AM.. Reason: code tags
# 2  
Old 08-31-2011
the sed solution below will address this specific issue, however do you also have to address other url-encoded characters? If so, try the Perl solution,.
Code:
~/$ cat filename
file%20name
~/$ sed 's/%20/ /g' <filename
file name
~/$ perl -e 'while(<>){$_=~s/%([\da-f]{2})/chr(hex($1))/ige;print}' filename
file name

# 3  
Old 08-31-2011
Hi,

I need to do it for all the files one entire folder.How to use this program for that.

Please let know

Thanks & Regards
Uma
# 4  
Old 08-31-2011
Sorry for the first answer - misunderstanding...

There should be rename command on Your system, which works like this:
Code:
rename "s/%20/ /g" *


Last edited by sulti; 08-31-2011 at 07:14 AM..
# 5  
Old 08-31-2011
Code:
cd $FOLDER
for i in * ; do
   mv $i "$((echo $i|sed 's/%20/ /g')"
done

Or if there are files with other characters url-encoded, try
Code:
cd $FOLDER
for i in * ; do
   export i
   mv $i  "$(perl -e '{$ENV{i}=~s/%([\da-f]{2})/chr(hex($1))/ige;print $ENV{i}}')"
done

---------- Post updated at 02:04 PM ---------- Previous update was at 10:43 AM ----------

---------- Post updated at 02:05 PM ---------- Previous update was at 02:04 PM ----------

Quote:
Originally Posted by sulti
Sorry for the first answer - misunderstanding...

There should be rename command on Your system, which works like this:
Code:
rename "s/%20/ /g" *

Actually rename only replaces the first occurrence of the initial string and doesn't take a regex argument.
ie
Code:
~/$ rename '%20' \  'English%20Brochure%20002-1[1]'
ls English*
English Brochure%20002-1[1]

# 6  
Old 08-31-2011
Works for me.
From rename manual:
Code:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

Code:
rename "s/%20/ /g" asdf%20asdfasdf%20fdasdf
$ ls asd*
asdf asdfasdf fdasdf

# 7  
Old 08-31-2011
I was trying to do this with find's -exec (or by piping to xargs) for the heck of it and found something strange.

Why does this work (deleting the %20 string):
Code:
find . -name \*%20\* -exec ksh -c 'mv $0 $( echo $0|sed 's/%20//g' )' {} \;

but this doesn't (replacing the %20 string with a space)
Code:
find . -name \*%20\* -exec ksh -c 'mv $0 $( echo $0|sed 's/%20/ /g' )' {} \;

sed: command garbled: s/%20/
mv: cannot access /g

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to replace text with space in vi?

Hi, In the vi editor, I could do a search and replace: :%s/work/play/g but how do I do this for a string/text with space? like if I want to replace all text of "come here" with text "go there"? I've tried with quotes, double quotes, back slash, none of them worked. thanks!... (1 Reply)
Discussion started by: seafan
1 Replies

2. Shell Programming and Scripting

replace space with the help of sed

Hi, i have below string - mynameis arpit i want output like below - mynameis\ arpit that i am getting from below - temp='mynameis arpit' echo $temp|sed 's//\\ /g' --> mynameis\ arpit now i am doing - (2 Replies)
Discussion started by: thearpit
2 Replies

3. Programming

Replace one space with nothing

hi, d o g e v o l i want a perl command for the above string which should change to the below dog evol replace one space with nothing and two spaces with one space. Thanks, Amey (3 Replies)
Discussion started by: ameyrk
3 Replies

4. Shell Programming and Scripting

replace space for enter

i have to print in a html file directories like this /home/user /home/user/dir but the problem is that when i us this comand listado=`find $direcreal -type f -print` i get this /home/user /home/user/dir1 i try with sed to replace the space with an enter mostrarlistado=`echo "$listado"... (9 Replies)
Discussion started by: pc03
9 Replies

5. UNIX for Dummies Questions & Answers

Replace slash / with space

Hello there everyone. would like to ask for help if i wish to replace a slash / with space using sed. Original: T/T Result: T T hope someone could help me up, thanks Charles (4 Replies)
Discussion started by: seiksoon
4 Replies

6. Shell Programming and Scripting

Replace every other space

I'd like a sed command to replace every other space in my file. File: 0 1 0 3 0 2 0 5 Want: 01 03 02 05 Does anyone have any ideas? (9 Replies)
Discussion started by: peanuts48
9 Replies

7. Shell Programming and Scripting

Replace long space to become one space?

Hi, i have the log attached. Actually i want the long space just become 1 space left like this : Rgds, (12 Replies)
Discussion started by: justbow
12 Replies

8. Shell Programming and Scripting

Replace space

Hai masters, If a file contains content of 2000 lines, from which i need to remove the first n characters or first n spaces from each line of the file. If suppose to remove n characters or first n spaces from a single line means, just use the command nx. But from the above scenario,... (9 Replies)
Discussion started by: ecearund
9 Replies

9. Shell Programming and Scripting

replace space by _

Hi I need to know how I change the spaces by _ in folders and filder founded by find ex. find . -name "* *" -exec echo {} \; ./test space ./test space/new file.txt ./test space/new file ./test space/untitled folder ./test space/untitled folder/new fileruben ./Backup/backup/Image... (6 Replies)
Discussion started by: ruben.rodrigues
6 Replies

10. Shell Programming and Scripting

Replace , (comma) with space

Hi, what is the better way to replace the , (comma) with a space char? Example:STRING=dir1,dir2,dir3 toSTRING=dir1 dir2 dir3 And.. how to find if in the string there is a comma? Thanks :) (6 Replies)
Discussion started by: mbarberis
6 Replies
Login or Register to Ask a Question