[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [K12OSN] OT: check case and format of filename



Rob Owens wrote:

Since list has been kinda slow lately, I'll test your patience with one
more scripting question.  You guys have really helped me learn a lot in
the past couple of days.  I've been looking into bash parameter
expansion, awk, and sed, but I'm not really sure I'm going in the right
direction.

I need to check a filename for a particular "format" or "convention".
File names should look like this:

AB12D89-S123--revA
AB12D89-S123--revA--page1

In other words:

1)  They should be all uppercase and numeric before the '--'
2)  They must contain '--revX', where X is any uppercase letter, and
'rev' must be lowercase.
3)  There is an optional --page# at the end, where # is any number, and
'page' must be lowercase.

I can work out the logic of testing for compliance with my rules, but
I'm not sure how to identify the case of each letter, nor how to split
the filename up using '--' as the divider.

Thanks for any advice you might have.  By the way, this is to be part of
a bash script (which is to be run on my K12LTSP box).
Do you need a function that returns true or false depending on whether a
string (filename) complies with the format or do you need something that
returns all filenames in a directory that do or do not comply or
something? Did you already figure out that you're probably looking at
using regular expressions? http://www.regular-expressions.info/ has a
lot of info on regular expressions.

Yes, I've been learning about regular expressions.  I appreciate the
link.  More stuff to read!

I need to check one particular string for compliance with the format.  I
don't need to correct the format, I just need to inform the user that it
is incorrect.

If you don't already know how to do something in shell/awk/sed you are probably better off starting with perl which can do all of the same and more, and even if you do know, you can do it in perl without changing a lot.

However, if you can describe your rules in terms of pathname expansions instead of regexps (which might be the point of the rules in the first place since you are talking about filenames...,) you might be able to do the tests in a shell case statement. It's hard to get variable-sized parts right in filename globs unless you enable the extended patterns, though.

--
  Les Mikesell
   lesmikesell gmail com



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]