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
signature.asc
Description: This is a digitally signed message part.