in reply to Help please?

Welcome to the monastery.

For posting, use <code>code tags</code> around your code.

Useless use of cat: Put the filename after all other perl arguments, such as:

perl -ne "blah" filename

You probably meant $3 instead of the duplicate $2.

.* is greedy, and will tend to eat too much. Given your input example, you might use \S+ to only capture non-whitespace, and .*? to be non-greedy elsewhere. Or, perhaps constrain your regex more with /Turn.*?speaker=(\S+)\s+startTime=(\S+)\s+endTime=(\S+)/

On Windoze/DOS, quoting is an issue, but you don't seem to have a problem so far. I prefer to use qq// and q// for quoting in perl oneliners. For example:

perl -ne "print qq/$1 $2 $3\n/ if (/Turn.*?speaker=(\S+)\s+startTime=( +\S+)\s+endTime=(\S+)/)" input_file > toto.xxx

To check the compile without running, add -c as a perl option:

perl -c -ne "print qq/$1 $2 $3\n/ if (/Turn.*?speaker=(\S+)\s+startTim +e=(\S+)\s+endTime=(\S+)/)" -e syntax OK

-QM
--
Quantum Mechanics: The dreams stuff is made of

Replies are listed 'Best First'.
Re^2: Help please?
by Guigou (Initiate) on May 30, 2014 at 10:15 UTC

    So I tried :

    perl -ne "print qq/$1 $2 $3\n/ if (/Turn.*?speaker=(\S+)\s+startTime=(+\S+)\s+endTime=(\S+)/)" input_file > toto.xxx

    And it tells me :

    c:\>perl -ne "print qq/$1 $2 $3\n/ if (/Turn.*?speaker=(\S+)\s+startTi +me=(+\S+)\ s+endTime=(\S+)/)" C1_A1_1a.trs > toto.xxx Quantifier follows nothing in regex; marked by <-- HERE in m/Turn.*?sp +eaker=(\S+ )\s+startTime=(+ <-- HERE \S+)\s+endTime=(\S+)/ at -e line 1.

    The file toto.xxx is created, but empty. I hardly understand what I am doing but I am in an effort to.

      I observe that your copy/paste skills and/or typing skills have come up short. There's a stray + in (+\S+) (i.e., the first one.) The error message even points it out for you :)

      -QM
      --
      Quantum Mechanics: The dreams stuff is made of

        OK ,I could have done that better... but understand me, when you look at this all for the first time, even reading is challenging. Anyway, I thank you all very much, it works flawlessly now. I will probably come back soon to annoy you again. Cheers monks!
        if not using download code, and code settings are that code is wrapped (probably noob default), then that explains extra + --- anonymous monk get code wrapping (with the + + + + + + +)
      How did the + get after the (?
      لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ