[ leka @ 08.04.2002. 19:09 ] @
Imam fajl fajl.m3 koji je recimo sledece sadrzine:

Code:

MODULE A;
IMPORT Wr, Stdio, Thread;

PROCEDURE DoIt() =
BEGIN
        TRY
                Wr.PutText(Stdio.stdout, "Hello world.\n");
                Wr.Close(Stdio.stdout);
        EXCEPT
                | Wr.Failure, Thread.Alerted =>
        END;
END DoIt; (* Komentar za dmc-a *)

BEGIN
END A.


Zelim da mi sed od tog fajla napravi fajl sa brojevima linija formatiranim udesno i da od toga dobijem:
Code:

     1 MODULE A;
     2 IMPORT Wr, Stdio, Thread;
     3
     4 PROCEDURE DoIt() =
     5 BEGIN
     6    TRY
     7       Wr.PutText(Stdio.stdout, "Hello world.\n");
     8       Wr.Close(Stdio.stdout);
     9    EXCEPT
    10       | Wr.Failure, Thread.Alerted =>
    11    END;
    12 END DoIt; (* Komentar za dmc-a *)
    13
    14 BEGIN
    15 END A.

(Nazalost na ES-u ne mogu nista formatirano da imam tako da ce kod da izgleda glup)
Imam neki osecaj da ce neko ko je sinoc bio na #elitesecurity da resi ovaj problem ;)

Pozdrav svima!
[ Gojko Vujovic @ 08.04.2002. 23:32 ] @
Evo awk bolje, brojevi linija formatirani udesno :)

cat fajl.m3 | awk '{ printf "%5d ", NR; print }'

A možeš i da popuniš prazna mesta nulama:

cat fajl.m3 | awk '{ printf "%05d ", NR; print }'

Može i perl, rešenje by virtus:

cat fajl.m3 | perl -e 'while(<>){ printf("%05d: %s", $i, $_); $i++;}'

Mada je najlakše koristiti nl komandu. :)) nl -ba fajl.m3 na primer.

Uskoro ću ti postovati i sed rešenje ako toliko znači..
[ Gojko Vujovic @ 09.04.2002. 00:25 ] @
Uh trebalo mi je malo vremena, ali evo ga, radi:

sed -e "=" fajl.m3 | sed -e :a -e '$!N;s/\n\([^0-9]\)/ \1/;ta' -e 'P;D' | sed '/^$/D;'
[ leka @ 10.04.2002. 16:13 ] @
AWK rulz