Wie kann man die Zeilennummer des ersten Auftretens der Zeichenfolge foo
in einer Datei abc.text
drucken? Ich möchte die Zeile des ersten Vorkommens so, als ob abc.text
von der 10. Zeile gestartet wird.Drucken der Zeilennummer des ersten Auftretens eines Musters ausgehend von einer bestimmten Zeilennummer in einer Datei
1
A
Antwort
2
Eine Möglichkeit, GNU diese Weise sed zu verwenden wäre:
sed -n '10,$ {/foo/{=; q}}' abc.text
Das heißt:
- Im Bereich von Linie 10 bis zum Ende
- -> Für eine Linie passend
foo
- -> die Zeilennummer drucken und dann
einige Tests die Richtigkeit demonstrieren die Verarbeitung stoppen:
{ for i in {1..9}; do echo $i; done; echo foo; echo bar; echo foo; } | \
sed -n '10,$ {/foo/{=; q}}'
# correctly prints 10
{ for i in {1..9}; do echo $i; done; echo x; echo foo; echo bar; echo foo; } | \
sed -n '10,$ {/foo/{=; q}}'
# correctly prints 11
{ for i in {1..9}; do echo $i; done; } | \
sed -n '10,$ {/foo/{=; q}}'
# correctly prints nothing
2
Sie könnten versuchen:
awk 'NR>=10 && $0~/foo/ {print NR; exit}' abc.text
Erläuterungen:
NR
ist die Zeilennummer, nur Linien mit der Nummer>=10
wird- in Betracht gezogen werden, wenn Sie die Nummer der Ausgangsleitung wollen, dass die ignorieren erste 9 Zeilen,
print NR-9
$0~/foo/
ist Standardmusterabgleich inawk
- die
exit
wird die Verarbeitung beim ersten Auftreten zu stoppen
0
Das für einige Nutzer besser lesbar sein:
tail -n +10 abc.txt | grep -n foo | head -1 | cut -f1 '-d:'
+1
Sie müssten 9 zur Antwort hinzufügen. –
+1
Ich habe nicht daran gedacht. Ich schätze, es kommt darauf an, wie du die Frage liest. –
Verwandte Themen
- 1. Die Zeilennummer einer bestimmten Phrase in der Datei Python erhalten
- 2. Wie finde ich die Zeilennummer des ersten Auftretens eines Wertes innerhalb einer Abfrage?
- 3. Python Löschen einer bestimmten Zeilennummer
- 4. Auswählen einer bestimmten Zeilennummer in SQL
- 5. Mit Grep die Zeilennummer des ersten Auftretens der Zeichenfolge in Bash-Shell erhalten
- 6. llvm Zeilennummer einer Anweisung
- 7. Logback AyncAppender nicht drucken Datei- und Zeilennummer
- 8. Entfernen des ersten Auftretens einer Nummer aus einer Liste
- 9. Methodenname von Zeilennummer
- 10. Zeilennummer des Segmentierungsfehlers
- 11. Sortieren von Elementen in einem Array, um den Index des ersten Auftretens einer bestimmten Ganzzahl zurückzugeben
- 12. Abrufen der Zeilennummer des Speicherorts in NSString
- 13. Holen Sie die Zeilennummer der Ausnahme der ersten Chance
- 14. Lesen einer bestimmten Zeile aus einer Datei im Bash-Skript mit Variable als Zeilennummer
- 15. Zurückgeben einer Zeilennummer in PHP-Skript
- 16. Geben Sie die Zeilennummer innerhalb des benutzerdefinierten Bereichs anstelle der absoluten Zeilennummer zurück
- 17. Nur Übereinstimmung des ersten Auftretens der Ziffer
- 18. Finden Sie Zeilennummer und Inhalt einer Zeile und dann finden Sie gleiche Zeilennummer in einer anderen Datei JAVA
- 19. Zeilennummer in Gruppe erhöhen
- 20. Python Logging (Funktionsname, Dateiname, Zeilennummer) mit einer einzigen Datei
- 21. gdb Speicheradresse der Zeilennummer finden
- 22. Öffnen Sie eine Datei in Visual Studio unter einer bestimmten Zeilennummer
- 23. Zeilennummer in BigQuery?
- 24. Listet alle Versionen einer bestimmten Zeilennummer in der GIT-Historie auf.
- 25. Um die Zeilennummer in gridview
- 26. Zeige Zeilennummer in der Ausnahmebehandlung
- 27. Protokollieren Zeilennummer in Oracle
- 28. Ausnahmefehlermeldung mit falscher Zeilennummer
- 29. Einfügen Zeichenfolge an Zeilennummer nodejs
- 30. Abrufen einer Zeilennummer aus einer bestimmten Gruppe von Zeilen mit einem Self-Join JPA
'für i in {1..9}; echo $ i; done' == 'seq9' – karakfa
' seq' ist nicht tragbar und nicht zu empfehlen – janos