replace space by _


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting replace space by _
# 1  
Old 01-21-2009
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 for linux Key
./Backup/backup/dings/Backup tool
./Backup/backup/dings/backup reading diff.sh

which option should I exec??

thanks
# 2  
Old 01-21-2009
Try it first without the coloured part to insure the commands are correct:

Code:
find . -name "* *" -exec echo {} \; |
sed 's/\(.*\) \(.*\)/mv & \1_\2/' | sh

Regards
# 3  
Old 01-21-2009
Hi

thanks a lot for you script but something strange is happaning. The verbose is correct but nothing happens.
It say mv ./new file.txt ./new_file.txt (which is correct) but then it stills the same, even with sudo

and the couloured part gives error

Any idea? thanks a lot
# 4  
Old 01-21-2009
Try this ...

As i dont have unix machine i havent verified the code in the machine ,
so i suggest you to test code no 1 , if it works then you can proceed with code no 2
#=========
#Code No : 1
#==========

for i in `find . -name "*" `
do
fil_path=`echo $i|tr -s |tr ' ' '_'`
echo New fil_path : $fil_path
done


#=========
#Code No : 2
#==========
for i in `find . -name "*" `
do
fil_path=`echo $i|tr -s |tr ' ' '_'`
echo fil_path : $fil_path

mv $i $fil_path

done


I hope it works ...........
# 5  
Old 01-21-2009
hmm I know why

I have to do mv ./new\ file.txt ./new_file.txt

with the \ in the space
I think that I can first echo to a file then in the file take the spaces and then use the file to change the space by a _
Do you think it's possible?
# 6  
Old 01-21-2009
Code:
find . -name "* *" -exec echo {} \; | sed 's/\(.*\) \(.*\)/mv "&" "\1_\2/"' | sh

# 7  
Old 01-21-2009
try this ...

this might work ...but u may need to change it accordingly



for i in `find . -name "*" `
do

fil_path=`echo $i|tr -s |tr ' ' '_'`|tr '\' '_'

echo fil_path : $fil_path

mv $i $fil_path

done
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. UNIX for Dummies Questions & Answers

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. English%20Brochure%20002-1 to be replace to English Brochure 002-1 Thanks a lot Please use and tags when posting code, data or logs etc. to preserve formatting... (8 Replies)
Discussion started by: umapearl
8 Replies

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

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