David Guntner <[email protected]> writes:
> Mark Carroll grabbed a keyboard and wrote:
(snip)
>> for i in *_????????_default\.m??
>> do mv "$i" "`echo $i | sed 's/.\{17\}\(.\{4\}\)$/\1/'`"
>> done
>
> Ooh, yea, that looks like it would do it, way better than what I came up
> with if it doesn't require a specific number of fields. I'm a little
> vague on my sed syntax, though. Could you break that down and explain
> how that's doing what it does?
Sure. First, the \ in the first line is superfluous. (-:
The sed replacement is:
- 17 characters, the count marked within \{ \}
- 4 characters is capture group 1, marked within \( \)
- the end of the string, marked with $
replace with
- group 1, marked with \1
So,
- the 17 are for the _????????_default
- group 1 is for .m4a
to replace _????????_default.m4a with .mp4
Using the $ to anchor to the end of the string is the key here. I can be
sloppy about what characters match because the glob in the for loop did
my matching for me.
-- Mark
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]