chutsu,

Yes, you were clear.  I wasn't.... My sentence was missing a word, so it 
didn't make sense to you.

As for the anomaly of the trailing slash, I turned out to be wrong. Your 
syntax of leaving off the trailing slash is the only syntax that worked 
for me.  The substitution syntax of 
/<search-string>/<replacement-string/ as used by sed and vim gave errors 
until I left off the trailing slash.

For anyone else that needs to rename part of a filename, here's an 
example that worked for me--thanks to chutsu's suggestions and help:

#"for i in *\&amp*" limits the list of filenames passed to the mv 
command to ONLY filenames containing '&amp'.
#
#mv "$i" "${i/\&amp;/and}" replaces '&amp;' with 'and' in each filename 
passed to it.

for i in *\&amp*; do mv "$i" "${i/\&amp;/and}"; done

------------------------------

chutsu wrote:
> Because if you remember, at the start of the for loop:
>
> for $i in *
>
> which I declared a bash variable called "i", and what ever it finds
> (filenames), the filename will be assigned to "i", then later on I
> used "i/search/replace" to say in variable "i" search and replace....
>
> Hope my explanations where clear!
>
> On Dec 21, 6:12 pm, chutsu <[email protected]> wrote:
>   
>> I think so... lol.. am not too sure what you mean, but the "i" just
>> means that your taking what ever filename the for loop is currently
>> handling, and doing a search and replace on variable "i".
>>
>> On Dec 21, 6:08 pm, tuxsun1 <[email protected]> wrote:
>>
>>     
>>> I may have replied too hastily. The 'i' is the original variable your
>>> using a regex substitution form, is that it?
>>>       
>>> chutsu wrote:
>>>       
>>>> Well I think the follow code will help you
>>>>         
>>>> for i in *;do mv "$i" "${i/\&amp/} done;
>>>>         
>>>> -So basically the for loop runs through every file in that particular
>>>> directory.
>>>> -Uses the "mv" command to rename files, the second statement is just
>>>> search and replace
>>>> -The "/\&amp/" means I want to search the term "&amp" and replace it
>>>> with "something".
>>>> -NOTE: the "\" infront of the "&", because you need to escape special
>>>> symbols such as "%" "-" etc ...
>>>> -After the second "/" in the search and replace term you can put
>>>> whatever you want...
>>>>  eg.) if I wanted to replace "&amp" with "HELLO" the move command will
>>>> be:
>>>>         
>>>> mv "$i" "${i/\&amp/HELLO}"
>>>>         
>>>> Hope this helps :)
>>>> Chris
>>>>         
>>>> On Dec 21, 5:15 pm, tuxsun1 <[email protected]> wrote:
>>>>         
>>>>> I have always used Bash variable substitution chars (#, ##, %, %%) to
>>>>> rename files when replacing the beginning or end of a filename.
>>>>>           
>>>>> Now I have a need to replace the middle portion of filenames from their
>>>>> html code, '&amp;', to 'and'.
>>>>>           
>>>>> e.g. list of filenames
>>>>>           
>>>>> Payables &amp; Receivables
>>>>> Sales &amp; Marketing
>>>>> Shipping &amp; Receiving
>>>>>           
>>>>> Normally, I would use something like, for i in '*&amp*'; do mv "$i"
>>>>> (this is where I'm stumped); done
>>>>>           
>>>>> TIA!
>>>>>           
>>     
>
>   

-- 
You received this message because you are subscribed to the Linux Users Group.
To post a message, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit our group at 
http://groups.google.com/group/linuxusersgroup

Reply via email to