Hi Bruce and William,

Ineed: I was looking for [\,] but your code removes the anoying empty
string because of the leading / (which is awesome) so I mixed from both
answers (<-[/]> is more robust than .alpha ) and added .Str to .say.

finally I got:

<<. raku -ne '.Str.say for m:ex /^ ["/" <-[/]>+:] **? 1..*  /;'
/var/log/messages

ther is only one caracter I don't understand in this anwser so I
considered removing it. bad idea:

<<. raku -ne '.Str.say for m:ex /^ ["/" <-[/]>+ ] **? 1..*  /;'
/var/log/messages

so I read about backtracking and found something I found a bit easier
to get/memorize: the :r adverb.

<<. raku -ne '.Str.say for m:ex{ ^ [ :r "/" <-[/]>+ ] **? 1..* }'
/var/log/messages

last but not least: **? 1..* is just +?.  At this point, my prefered solution 
is:

<<. raku -ne '.Str.say for m:ex{^ [:r "/" <-[/]>+]+? }'
/var/log/messages

and it is pretty good compared to the sed version:

<<. sed -E ':b p; s:/[^/]+$::; t b'

thank you very much to both of you: I learned a lot on this post.

-- 
Marc Chantreux
Pôle de Calcul et Services Avancés à la Recherche (CESAR)
http://annuaire.unistra.fr/p/20200

Reply via email to