[EMAIL PROTECTED] am Freitag, 9. Februar 2007 14:21:
> How do I get these two into one one liner?
>
> Obviously, semicolon, but I want to operate on the file
> all over again without using tmp files.
[1]
> cp /net/u/1/v/vjp2/weco.txt /net/u/1/v/vjp2/junk.tmp
[2]
> cat /net/u/1/v/vjp2/junk.tmp | perl -n00e'tr/\t\r\n/ /; \
> print "$1\n" while s/^(.{0,36}\S)\s+//; \
> print "\n"' > /net/u/1/v/vjp2/junk2.tmp
[3]
> cat /net/u/1/v/vjp2/junk2.tmp | perl -pe 'if ($.%4==2) {$_ .= \
> qq(\n).(q(-) x 37).qq(\n)} elsif ($.%4==0) \
> {$_ .= qq(\n).(q(=) x 37).qq(\n)} else {$_ .= qq(\n)};'
The lines [2] and [3] contain the answer to your question: Intermediate files
can be replaced by using a pipe (|).
So, instead of writing to a file via redirection (>) in [1] and then catting
this file again in [2], use a pipe.
What's done in [1] seems superfluous to me; you can start with weco.txt
directly.
Personally, I don't think it's the best idea to start using perl by playing
perl golf...
Hope this helps
Dani
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/