On Wednesday 10 Feb 2016 20:28:29 Alexander Kapshuk wrote:
> On Wed, Feb 10, 2016 at 7:02 PM, Mick <michaelkintz...@gmail.com> wrote:
> > I've been struggling to parse/split/substitute some names and numbers
> > using a spreadsheet and think that this task may be easier to achieve
> > using conventional *nix tools. The problem is I wouldn't know where to
> > start.
> > 
> > I have a directory with loads of images.  Each image file name has a
> > description comprising hyphen-separated words and a part number, also
> > hyphen separated; e.g.:
> > 
> > some-description-with-words-012-63099.jpg
> > 
> > The number and length of the words change for each file.  The part number
> > always has two components separated by a hyphen, but may also change in
> > length and acquire more/fewer digits.
> > 
> > I need two outputs:
> > 
> > 1. the description + " (per M²)", like so:
> > 
> > some-description-with-words (per M²)
> > 
> > 2. the part number, but replacing the hyphen with "/", like so:
> > 
> > 012/63099
> > 
> > 
> > I can list the directory contents and redirect all image file names into a
> > txt file.  What I am looking for is some additional steps I can pipe it
> > through to obtain the two outputs, either in the same file or different
> > files.  These file(s) are then imported into a spreadsheet template and
> > manipulated, before the result is ultimately exported from the
> > spreadsheet and uploaded to a server as a CSV file.
> > 
> > Is this parsing, splitting and substitution exercise achievable?  Any
> > suggestions to try out?
> > 
> > --
> > Regards,
> > Mick
> 
> To get the desired output in two distinct steps, you could try this:
> 
> echo 'some-description-with-words-012-63099.jpg' |
> sed 's!-[0-9][0-9]*.*! (per M²)!'
> some-description-with-words (per M²)
> 
> echo 'some-description-with-words-012-63099.jpg' |
> sed 's![^0-9][^0-9]*!!; s![.][^0-9]*!!; s!-!/!'
> 012/63099
> 
> To get both types of output on the same line separated with white
> space, you could try this:
> 
> echo 'some-description-with-words-012-63099.jpg' |
> sed '
>     H
>     s!-[0-9][0-9]*.*! (per M²)!
>     x
>     s![^0-9][^0-9]*!!
>     s![.][^0-9]*!!
>     s!-!/!
>     H
>     g
>     y!\n! !
> '
> some-description-with-words (per M²) 012/63099


Thank you all so much for your responses!  Plenty to try out.

I love this M/L!  :-)

-- 
Regards,
Mick

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to