Hallo!
mit welchen Programm kann man einzelne Zeichen aus Dateien ausgeben??
Ich will zB aus ein paar Dateien jeweils die erste und vierte
Zeile ausgeben lassen.
Danke!
Hallo!
mit welchen Programm kann man einzelne Zeichen aus Dateien ausgeben??
Ich will zB aus ein paar Dateien jeweils die erste und vierte
Zeile ausgeben lassen.
Danke!
mit welchen Programm kann man einzelne Zeichen aus Dateien
ausgeben??
mit tail
man tail
sollte Dir die genaue Anwendung erlÀutern.
alternativ sed
HTH,
Sebastian
ach so mit tail geht das also!
ich hab tail immer nur so benutzt:
tail -f /var/log/messages
ist wohl die haeufigste nutzungâŠ!
danke
Hi,
mit welchen Programm kann man einzelne Zeichen aus Dateien
ausgeben??mit tail
hm, da die ersten paar Zeilen gelesen werden sollen, wĂŒrde ich eher zu head tendieren.
Cheatah
Hallo David,
mit welchen Programm kann man einzelne Zeichen aus Dateien
ausgeben??
Hier ist Perl Dein Freund.
Ich will zB aus ein paar Dateien jeweils die erste und vierte
Zeile ausgeben lassen.
Kopiere folgenden Perl-Aufruf in Deine (Linux-)Komandozeile
(das ganze muss eine Zeile ohne ZeilenumbrĂŒche sein!):
perl -e '@n=(1,4);foreach(@ARGV){open(FILE,$\_);@lines=;foreach$n(@n){print"$\_,$n:";defined($lines[$n-1])?print"$lines[$n-1]":stuck\_out\_tongue:rint"#GIBTS NICHT#\n";}}' datei1.txt datei2.txt
In die Zahlenliste am Anfang @n=( ⊠) schreibst Du die
Zeilennummern, die jeweils ausgegeben werden sollen und
am Ende folgen die zu untersuchenden Dateien.
Danke!
Bitte
Gruss,
-Andreas (der Perl-Einzeiler mag âŠ).
Hi,
@lines=;
dies ist allerdings nur dann empfehlenswert, wenn die Dateien relativ klein sindâŠ
Cheatah
Hi auch,
@lines=;
dies ist allerdings nur dann empfehlenswert, wenn die Dateien
relativ klein sindâŠCheatah
Du programmierst doch auch Perl, wie wÀrs denn mit einem
Verbesserungsvorschlag (kĂŒrzer, speicherschonender, gleiche
FunktionalitĂ€t, âŠ)?
Ich lerne nÀmlich gerne dazu
Kollegiale GrĂŒsse,
-Andreas.
Du programmierst doch auch Perl, wie wÀrs denn mit einem
Verbesserungsvorschlag (kĂŒrzer, speicherschonender, gleiche
FunktionalitĂ€t, âŠ)?
Kein Perl.
Ich lerne nÀmlich gerne dazu
Das ist das einzige Argument, was Deine Frage rechtfertigt.
Sebastian
Hi Sebastian,
Du programmierst doch auch Perl, wie wÀrs denn mit einem
Verbesserungsvorschlag (kĂŒrzer, speicherschonender, gleiche
FunktionalitĂ€t, âŠ)?Kein Perl.
Dann poste mal Deine tail-Lösung, die kann ich
mir nicht so richtig vorstellen âŠ
Ich lerne nÀmlich gerne dazu
Das ist das einzige Argument, was Deine Frage rechtfertigt.
Zu gĂŒtig von Dir.
Sebastian
Andreas (möchte immer noch dazulernen).
Du programmierst doch auch Perl, wie wÀrs denn mit einem
Verbesserungsvorschlag (kĂŒrzer, speicherschonender, gleiche
FunktionalitĂ€t, âŠ)?Kein Perl.
Dann poste mal Deine tail-Lösung, die kann ich
mir nicht so richtig vorstellen âŠ
Arrgh! Ich habe Mist geschrieben, dachte an die Option ââlinesâ, die aber anders wirkt.
Cheetah hatte mit âheadâ den Volltreffer.
Ich lerne nÀmlich gerne dazu
Das ist das einzige Argument, was Deine Frage rechtfertigt.
Zu gĂŒtig von Dir.
?
Andreas (möchte immer noch dazulernen).
Se "Aua! "bastian (hat mit tail leider nichts zu bieten)
P.S: Nichs gegen Perl, aber solche Dinge mit Perl zu lösen ist mit Kanonen auf Spatzen schieĂen. daher meine Bemerkung. Und mit tail ist wohl mit EiswĂŒrfeln nach dem Mond schmeissen.
Guten Abend nochmals,
Kein Perl.
Dann poste mal Deine tail-Lösung, die kann ich
mir nicht so richtig vorstellen âŠArrgh! Ich habe Mist geschrieben, dachte an die Option
ââlinesâ, die aber anders wirkt.Cheetah hatte mit âheadâ den Volltreffer.
Bei meinem head zumindest wird mit --lines=N
jede Zeile von der ersten Zeile bis zur N.ten
angezeigt, das Ausgangsproblem war aber beliebige
Einzelzeilen, nicht komplette Bereiche auszugeben.
P.S: Nichs gegen Perl, aber solche Dinge mit Perl zu lösen ist
mit Kanonen auf Spatzen schieĂen. daher meine Bemerkung.
Die Practical Extraction and Reporting Language
ist anfangs gerade fĂŒr solche Probleme von Larry Wall
geschrieben worden. Sie ist in dem Sinne ein um C-Syntax
aufgepepptes sed, awk, grep, bash, etc. und hat den grossen
Vorteil, dass man sich nur eine Syntax plattformĂŒbergreifend
aneignen muss.
Also wenn ich das obige Problem möglichst fix lösen will,
bin ich wohl mit Perl noch am besten dran, den sed-Syntax
ist AFAIK OS- und versionsabhÀngig und C oder Java ist dann
wohl wirklich mit âKanonen auf Spatzenâ geschossen.
Und mit tail ist wohl mit EiswĂŒrfeln nach dem Mond
schmeissen.
Und meine head-Version kann ich wohl gleich hinterschmeissen âŠ
Gruss,
-Andreas.
Hi,
Du programmierst doch auch Perl, wie wÀrs denn mit einem
Verbesserungsvorschlag (kĂŒrzer, speicherschonender, gleiche
FunktionalitĂ€t, âŠ)?
kein Code, aber ein Vorschlag: Zeilenliste sortieren; Datei zeilenweise einlesen; bei Ăbereinstimmung Zeilennummer erster Eintrag im Array Zeile ausgeben && Array shiften.
Aufhören, wenn scalar Array == 0, nicht wenn EOF
Cheatah
leute, seid ihr noch zu retten?
P.S: Nichs gegen Perl, aber solche Dinge mit Perl zu lösen ist
mit Kanonen auf Spatzen schieĂen. daher meine Bemerkung.
ack!
Die Practical Extraction and Reporting Language
ist anfangs gerade fĂŒr solche Probleme von Larry Wall
geschrieben worden. Sie ist in dem Sinne ein um C-Syntax
aufgepepptes sed, awk, grep, bash, etc. und hat den grossen
Vorteil, dass man sich nur eine Syntax plattformĂŒbergreifend
aneignen muss.
also perl benutze ich, fuer cgis oder wenn ich sockets brauche, ansonsten ist es kanonen auf spatzen, insbesondere, wenn man dann noch shell-zeilen absetztâŠ
Also wenn ich das obige Problem möglichst fix lösen will,
bin ich wohl mit Perl noch am besten dran, den sed-Syntax
ist AFAIK OS- und versionsabhÀngig
schon seit jahrzehnten nicht mehr. und sed ist nicht wirklich das tool der wahl (obwohl ich nicht bestreiten will, dass es da auch ne loesung gibt).
und C oder Java ist dann
wohl wirklich mit âKanonen auf Spatzenâ geschossen.
stringverarbeitung in c und java?
Und mit tail ist wohl mit EiswĂŒrfeln nach dem Mond
schmeissen.Und meine head-Version kann ich wohl gleich hinterschmeissen
wieso?
#!/bin/sh #or wherever mr. bourne residesâŠ
head -1 $1
head -4 $1 | tail -1
aber in der tat, mittel der wahl ist awk, das schweizer taschenmesser:
awk âNR=1 || NR=4â datei
joachim, der perl auch von berufs wegen nur noch selten verwenden darf, immerhin ist das schon beinah nen angriffstool
Hi Joachim,
leute, seid ihr noch zu retten?
Naja, ich glaube man kann schlimmere Dinge anstellen,
als darĂŒber zu diskutieren, wie man geschickt Zeilen
aus Dateien extrahiert. Mit Deiner Antwort ist nun
bei mir die Hoffnung auf eine form-vollendete
Lösung aufgetaucht
aber in der tat, mittel der wahl ist awk, das schweizer
taschenmesser:awk âNR=1 || NR=4â datei
Dein Ansatz mit awk ist schön kompakt und mit zwei â=â mehr
macht er auch auf meiner Linuxkiste mit einer Datei das was urspĂŒnglich gefragt war:
awk âNR == 1 || NR == 4â datei
Wie gehe ich nun aber mit awk auf diese Weise eine Dateiliste
durch? Muss ich da ARGV in eine for-Schleife verpacken?
Schonmal danke fuer Deine BemĂŒhungen!
-Andreas.
Dein Ansatz mit awk ist schön kompakt und mit zwei â=â mehr
macht er auch auf meiner Linuxkiste mit einer Datei das was
urspĂŒnglich gefragt war:
oerks, peinlich, dass kommt davon, wenn man bereits ueber das naechste problem (heads or tails) nachdenktâŠ
awk âNR == 1 || NR == 4â datei
so sollte es heissen, ueberallâŠ
Wie gehe ich nun aber mit awk auf diese Weise eine Dateiliste
durch? Muss ich da ARGV in eine for-Schleife verpacken?
mit plain awk nicht moeglich (unter freiem unix meist schon, da dort awk=gawk), mit nawk oder gawk schon:
nawk âFNR==1 || FNR==4â file1 file2âŠ
man bemerke FNR, bezieht sich auf die zeilenummer im aktuellen file, waehrend sich NR auf die zeilennummer insgesammt in diesem awk lauf beziehtâŠ
joachim