Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11555[/thread]

sed-Kommando aus Perl-Skript aufrufen?



<< >> 6 Einträge, 1 Seite
Duff
 2008-04-02 12:17
#107732 #107732
User since
2006-10-06
283 Artikel
BenutzerIn

user image
Hallo,

ich habe folgendes Problem. Und zwar möchte ich in einem Perl-Skript ein sed-Kommando verwenden, welches ich auch wunderbar ausserhalb des Perl-Skriptes aufrufen kann.

Code: (dl )
my $all=qx{/usr/bin/sed -ne 's/^.*<text:text>\(.*\)<\/text:text>.*$/\1/p' $FILE | /usr/bin/sort | /usr/bin/uniq|/usr/bin/wc -l};


Was muss ich bei dem Aufruf über das Perl-Skript ändern???
Danke.
D'OH
Daniel
Duff
 2008-04-02 12:31
#107733 #107733
User since
2006-10-06
283 Artikel
BenutzerIn

user image
Habe es gelöst bekommen.

Und zwar so:
Code: (dl )
qx{/usr/bin/sed -ne 's/^.*<text:text>\\(.*\\)<\\/text:text>.*\$/\\1/p' $FILE | /usr/bin/sort | /usr/bin/uniq|/usr/bin/wc -l});
D'OH
Daniel
murphy
 2008-04-02 18:31
#107756 #107756
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Es sei nur angemerkt, dass dieses komplette externe Kommando ebenso leicht direkt in Perl umgesetzt werden könnte, was für mich irgendwie nach einer besseren Lösung aussähe...
When C++ is your hammer, every problem looks like your thumb.
Dubu
 2008-04-27 20:51
#108912 #108912
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Vor allem nehme ich an, eine Perl-Lösung wäre offensichtlicher, Speicher schonender und schneller:
Code (perl): (dl )
1
2
3
4
5
6
7
8
...
my %textinhalte;
open my $fh, '<', $FILE or die "cannot open $FILE: $!";
while (<$fh>) {
    $textinhalte{$1}++ if m~<text:text>(.*)</text:text>~;
}
close $fh;
print "Anzahl unterschiedlicher Inhalte: ", scalar keys %textinhalte;
KurtZ
 2008-04-28 03:13
#108924 #108924
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
und selbst wenn man schon fertigen sed-code hätte, hätte man mit s2p einen kompletten sed-to-Perl translator zum migrieren.
TMTOWTDYOG (there's more than one way to dig your own grave)
Gast Gast
 2008-04-28 07:18
#108925 #108925
oder mit dem Modul CPAN:Sed
<< >> 6 Einträge, 1 Seite



View all threads created 2008-04-02 12:17.