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):
but this doesn't (replacing the %20 string with a space)
Take a close look at your quoting. You cannot include a single-quote in a single-quoted string. Usually, that's done by closing the quoted string, escaping a single quote, and re-opening a quoted string: 'foo'\''bar'
You just got lucky with the version that works because there's no IFS-whitespace in the unquoted segment.
Although I cannot replicate it (my ksh complains about unmatched parenthesis), it looks to me that the ksh command string consists of mv $0 $( echo $0|sed 's/%20/. $0 is then set to /g ), and $1 to the pathname inserted in place of {}.
Since the $0 is unquoted, the first argument to mv, $0, will undergo field splitting. Since /g ) contains a space, it will become two fieldsd. The first argument to mv will then be /g, which is mentioned in the error message. The ) will be the second argument to mv. This is also consistent with where sed is complaining that its command abruptly ends.
Still, odd that your ksh itself didn't complain about the unterminated command substitution.
Regards,
Alister
Last edited by alister; 09-01-2011 at 10:49 AM..
Reason: Deleting critique based on misunderstanding
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)
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)
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)
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)
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)
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)
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)
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)