Thread Entfernen eines Zeilenumbruchs in Abhängigkeit vom Zeilenende und darauffolgenden Zeilenanfang (6 answers)
Opened by SEA at 2011-01-27 11:50

pq
 2011-01-27 15:04
#145073 #145073
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
2011-01-27T12:32:48 SEA
Ich habe noch eine zweite Lösung:
Code: (dl )
echo "a#b#c#d" | tr '#' '\n' | perl -e '@_ = <STDIN>; $_ = join("", @_); s/b\nc/bc/g; print $_;'

wobei du hier auch $/ setzen könntest, denn so liest du erst alles in ein array und machst dann wieder ein join. mit $/ undef wird das lesen von <STDIN> erst gar nicht gesplittet. also:
echo "a#b#c#d" | tr '#' '\n' | perl -we 'undef $/; $_ = <STDIN>; s/b\nc/bc/g; print $_;'

bei der variante brauchst du den BEGIN-block nicht.

ich würde mir übrigens angewöhnen, bei perl-einzeilern immer -w dazuzupacken. wenn du einen fehler machst, kann -w dich u.U. darauf hinweisen. wenn man es in einzeilern nicht benutzt, wundert man sich ggfs. eine ganze weile, warum etwas nicht funktioniert.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Entfernen eines Zeilenumbruchs in Abhängigkeit vom Zeilenende und darauffolgenden Zeilenanfang