AWK drucken jede N-te Zeile aus einer Datei
will ich drucken jede N-te Zeile einer Datei mit AWK.
ich habe versucht, ändern das Allgemeine format :-
awk '0 == NR % 4' results.txt
zu:-
awk '0 == NR % $ct' results.txt
wo 'ct' ist die Anzahl der Zeilen, die übersprungen werden sollen.
seine nicht funktioniert . kann jemand bitte mir helfen?
Vielen Dank im Voraus.
- erfahren Sie, was einfache Anführungszeichen zu tun, die in der shell. kurz gesagt: keine variable expansion.
- Lesen Sie Frage 24 in der comp.unix.shell-FAQ: cfajohnson.com/shell/cus-faq-2.html#Q24.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie verwenden möchten:
Erklärung
Gegeben, eine Datei wie die folgende:
Diese sind äquivalent:
Oder sogar
Beachten Sie, dass die syntax
NR % n == 0
bedeutet: Nummer der Zeile, ist mehrere zun
. Wenn wir sagen!(NR % patt)
ist, dann ist dies wahr, wennNR % patt
falsch ist, dhNR
ist Vielfaches vonpatt
.Update
Als Sie die Bemerkung, die Sie verwenden Solaris, anstelle der Standard -
awk
verwenden Sie die folgenden:awk: syntax error near line 1 awk: bailing out near line 1
awk -v pattern="$ctr" 'NR % pattern == 0' res.txt
ctr
einen integer-Wert vorher?/usr/xpg4/bin/awk
anstelle der normalenawk
. (objectmix.com/awk/27239-awk-bailing-out-near-line-1-a.html)ctr=
cat data | grep-i "Eintrag Geschlossen" | wc -l`, wo ich es benutzt zum zählen der vorkommen des Musters "Eintrag Geschlossen" in die Datei namens "Daten"Wie wäre es damit:
oder ein wenig kürzer
awk: syntax error near line 1 awk: bailing out near line 1
was ist dort das problem?Diese machen auch Arbeit, aber es ist nicht eine gute Praxis.
Ist dies ok ist:
awk: syntax error near line 1 awk: bailing out near line 1