Schrift
[thread]6132[/thread]

perl -ne

Leser: 1


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
havi
 2004-03-10 15:47
#80859 #80859
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Code: (dl )
perl -ne "map { s%^\s+%%g; s%\s+$%%g; s% +% %g; s%\"%%g; } $_;" test1.txt > test1.aus


Was ist das falsch?

Fehlermeldung:Can't open >: No error, <> line 1.

Gruss
pq
 2004-03-10 16:09
#80860 #80860
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
die fehlermeldung ist merkwürdig. aber der aufruf auch.
allgemein:
Code: (dl )
1
2
3
4
hier wird datei.txt geändert und datei.txt.bak angelegt
$ perl -pi.bak -e 's/.../.../' datei.txt
hier wird datei.neu angelegt
$ perl -ne 's/.../.../; print $_' datei.txt > datei.neu

nebenbei, dein map ist völlig unnötig
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
havi
 2004-03-10 16:14
#80861 #80861
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Vielen Dank.
Sehr vor lauter Baeumen den Wald nicht mehr.
Das map ist natuerlich unnoetig, weil
s/.../.../g; ja eh auf $_ angewandt wird.

Gruss
havi
 2004-03-10 16:24
#80862 #80862
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Code: (dl )
D:\>perl -ne "s%^\s+%%g; s%\s+$%%g; s% +% %g; s%\"%%g; print $_" test1.txt > test1.neu

Fehlermeldung: Can't open >: No error, <> line 1.

Gruss
Ishka
 2004-03-10 16:25
#80863 #80863
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Die fehlermeldung sieht danach aus, als ob deine Bash kein > kann. Unter Linux oder unter ner cygwin-Bash sollte es funktionieren. (oder zumindestens keinen Fehler auswerfe - siehe pqs Bemerkungen zu map ;) )
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
havi
 2004-03-10 16:27
#80864 #80864
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Code: (dl )
D:\>perl -pi.bak -e "s%^\s+%%g; s%\s+$%%g; s% +% %g; s%\"%%g;" test1.txt


Funzt.

Danke @pq

Gruss
Strat
 2004-03-10 16:34
#80865 #80865
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
das Problem macht das \" ...
teste mal:
Code: (dl )
perl -pe "s%^\s+%%g; s%\s+$%%g; s% +% %g; $x = chr(34); s%$x%%g" in > out

das print $_ kannst du dir sparen, wenn du wie im Beispiel statt -n -p nimmst; bei dem wird $_ automatisch ausgegeben\n\n

<!--EDIT|Strat|1078929341-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
havi
 2004-03-10 16:40
#80866 #80866
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Perfekt!

Vielen Dank!

Gruss
pq
 2004-03-10 16:43
#80867 #80867
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
strat: bei -p wird aber die original-datei verändert, bei -n nicht...
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
havi
 2004-03-10 16:50
#80868 #80868
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Die Originaldatei hat sich aber eben nicht geaendert...
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2004-03-10 15:47.