finn.drablos@sintef.no (Finn Drablos) (10/01/90)
I have a source code file with several subroutines. Each subroutine is started with a comment line with 'BEGIN <name-of-routine>'. Now I want to split this into separate files with csplit, and as I understand the man page the following command should work : csplit -k source.src /BEGIN/ {40} However, it seems to split up to the first BEGIN, and then the next 40 lines. It does not use the pattern 40 times. I have tried /BEGIN/{40}, '/BEGIN/ {40}', '/BEGIN/{40}', '/BEGIN/+0 {40}', '/BEGIN/+0{40}', '/BEGIN/'{40} etc. ... Am I doing something obviously wrong, or is there a problem with csplit? I am using csh and IRIX 3.2.1. Thanks in advance! ================== Finn Drablos PHONE +47 7 997710 FAX +47 7 997708 MR-Senteret, UNIMED, SINTEF C=no;P=uninett;O=sintef;G=finn;S=drablos; N-7034 TRONDHEIM, NORWAY MHS(EAN) : finn.drablos@sintef.no EARN/BITNET : drabloes@norunit ----------------------------------------------------------------------
davea@quasar.wpd.sgi.com (David B.Anderson) (10/02/90)
In article <218*finn.drablos@sintef.no> finn.drablos@sintef.no (Finn Drablos) writes: [stuff deleted] >csplit -k source.src /BEGIN/ {40} [stuff deleted] >lines. It does not use the pattern 40 times. I have tried /BEGIN/{40}, csh strips the {}. Use: csplit -k source.src /BEGIN/ \{40\} Regards, [ David B. Anderson Silicon Graphics (415)335-1548 davea@sgi.com ] [``What can go wrong?'' --Calvin and Hobbes]
pj@giraffe.asd.sgi.com (Paul Jackson) (10/02/90)
In article <218*finn.drablos@sintef.no>, finn.drablos@sintef.no (Finn Drablos) writes: |> I have a source code file with several subroutines. Each subroutine is |> started with a comment line with 'BEGIN <name-of-routine>'. |> |> Now I want to split this into separate files with csplit, and as I |> understand the man page the following command should work : |> |> csplit -k source.src /BEGIN/ {40} |> |> However, it seems to split up to the first BEGIN, and then the next 40 |> lines. It does not use the pattern 40 times. I have tried /BEGIN/{40}, |> '/BEGIN/ {40}', '/BEGIN/{40}', '/BEGIN/+0 {40}', '/BEGIN/+0{40}', |> '/BEGIN/'{40} etc. ... The csh strips off the unquoted { } characters, so that the actual argument seen by csplit is a simple 40, which is taken as a line number. Try: csplit -k source.src /BEGIN/ '{40}' where the single quotes protect the { } characters. Your other attempts mostly tried to force the /BEGIN/ and the {40} into a single argument, which is not what you want. -- Thanks, take care ... Paul Jackson (pj@asd.sgi.com), x1373