Ich möchte einige Zeilen mit awk extrahieren. Ist es möglich, die folgende Aufgabe auszuführen: 
ls -l | awk "BEGIN FOR(i=122;i<=129;i++) FNR==i" Wie kann ich die Details aus den Zeilennummern 122 bis 129 anzeigen?
Kommentare
-  Wenn Sie dies in einer Schleife tun würden, würde ich ' die sed-Methode, dasedso viel kleiner ist (und schneller geladen wird) alsawk.
Antwort
 Sie haben nicht verstanden, wie awk funktioniert. Das angegebene „Programm“ wird  immer  einmal für jede Zeile (oder „Aufzeichnung“ im awk-Sprachgebrauch) der Eingabe ausgeführt, es ist keine FOR oder erforderlich Verwenden Sie einfach: 
ausführliche Methode
ls -l | awk "NR>=122 && NR<=129 { print }" kompaktere Methode
ls -l | awk "NR==122,NR==129"  Diese geben einen Bereich für NR an, bei dem es sich normalerweise um den „Number Record“ handelt ist die aktuelle Zeile, die awk verarbeitet. 
Kommentare
-  Eigentlich die typische awkCode für eine solche Aufgabe ist normalerweisels -l | awk 'NR==122,NR==129'.
- Wie lautet der Befehl zum Abrufen der letzten 100 Zeilen aus der Datei mit awk
- @ShihabudheenKM Vielleicht sehen Sie sich das an: stackoverflow.com/questions/12546919/…
Antwort
 Eine weitere alternative Methode wäre die Verwendung von sed : 
 
Wenn es jedoch, wie Ihre Frage andeutet, wichtig ist, awk dafür zu verwenden, lesen Sie den Kommentar von manatwork zu Zrajms Antwort. In der Dokumentation von awk heißt es:
A pattern may consist of two patterns separated by a comma; in this case, the action is performed for all lines from an occurrence of the first pattern though an occurrence of the second.
Wenn Sie möchten, können Sie auch erweiterte Bedingungen festlegen. Beispiel:
ls -l | awk "NR==122,/foobar/" Dies würde die Ausgabe in Zeile 122 starten und fortgesetzt, bis eine Zeile die enthält Wort „foobar“.
Wenn Sie uns den tatsächlichen Anwendungsfall mitteilen, können wir möglicherweise mit Antworten helfen, die eine bessere Lösung bieten. Ich mache mir Sorgen, dass dies so klingt ein XY-Problem .
Antwort
 Eine andere Möglichkeit Tun Sie dies (obwohl ich die awk -Methode bevorzuge) mit coreutils: 
ls -l | tail -n +122 | head -n 8 Antwort
 awk "NR == 122,NR == 129{print $0}" file Hier können wir die Zeilen von 122 bis 129 der Datei extrahieren.
werden die gesamten Dateidaten zwischen 122 und 129 Zeilen gedruckt.
Kommentare
- doppelte Antwort von unix.stackexchange.com/a/89641/72456