Re: batch job

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
+ (text/plain)
Delete this message
Reply to this message
Author: Brian Parma
Date:  
To: plug-discuss
Subject: Re: batch job
On 08/05/2011 03:45 PM, Dazed_75 wrote:
> I have finished doing the work but did it manually. For future
> reference, I'd like to re-learn what I forgot from 20+ years ago about
> how to do this the easy way. Basically, I had a directory full of
> files that I wanted to process all the same way and rename them in the
> process. What I could not remember was how with globbing, I could
> specify the output name part that was wild-carded in the input should
> be used in the output.
>
> Lets say I have a bunch of files named Screenshot-PXEmenu-*.png and I
> want to copy or rename them to PXEmenu-*.png. Both mv and copy fail
> (understandably?) using "<command> Screenshot-PXEmenu-*.png
> PXEmenu-*.png". I am pretty sure there is a way to make one or both
> work with a syntax for the target I do not remember. Any clues?
>
> The names are real, though what I was really doing was using the
> convert command of ImageMagick to negate all the colors in those
> screenshots so I had a specified input and output file anyway. NTL,
> the base question here is the real one.
> --
> Dazed_75 a.k.a. Larry
>
> The spirit of resistance to government is so valuable on certain
> occasions, that I wish it always to be kept alive.
> - Thomas Jefferson
>
>
> ---------------------------------------------------
> PLUG-discuss mailing list -
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss

if there are no spaces in your filenames, you can do something like:
>for i in `ls Screenshot-PXEmenu-*.png`; do mv "${i}"

"${i/Screenshot-/}"; done

where the ${var/pattern/replacement} replaces part of the variable (see
http://tldp.org/LDP/abs/html/parameter-substitution.html)

If there are spaces in the name, than the for loop will loop over each
word in each filename, which will break it, so you can use the following
trick to get around that:

>find . -maxdepth 1 -iname "Screenshot-PXEmenu-*.png" -print0 | while

read -d $'\0' i; do echo "${i/Screenshot-/}"; done

Drop the maxdepth if you want it to be recursive.

B

---------------------------------------------------
PLUG-discuss mailing list -
To subscribe, unsubscribe, or to change your mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss