Ich möchte eine Liste von Zeilen in einer Stapeldatei erhalten, die länger als 120 Zeichen sind. Dafür dachte ich an sed. Ich habe es versucht, aber ich war nicht erfolgreich. Wie kann ich das erreichen? Gibt es eine andere Möglichkeit, eine andere Liste als sed zu bekommen ?? Dank ..Suchen von Zeilen, die länger als 120 Zeichen sind, mit sed
Antwort
Ein anderer Weg, dies mit awk zu tun:
cat file | awk 'length($0) > 120'
Sie grep
und quantifier seine Wiederholung verwenden:
grep '.\{120\}' script.sh
+1. Bläh, ein paar Sekunden schneller. –
'Grep' ist mindestens 10x schneller bei großen Dateien (10 GB). – FeedTheWeb
Mit sed, haben Sie einige Alternativen:
sed -e '/.\{120\}/!d'
sed -e '/^.\{,119\}$/d'
sed -ne '/.\{120\}/p'
Die erste Option entspricht Zeilen, die (mindestens) 1 nicht haben 20 Zeichen (die !
nach dem Ausdruck soll den Befehl auf Zeilen ausführen, die nicht entsprechen das Muster vor ihm), und löscht sie (dh. druckt sie nicht).
Die zweite Option entspricht Zeilen, die vom Anfang (^
) bis zum Ende ($
) insgesamt Zeichen von Null bis 119 enthalten. Diese Zeilen werden ebenfalls gelöscht.
Die dritte Option besteht darin, das -n
-Flag zu verwenden, das sed anweist, Zeilen nicht standardmäßig zu drucken und nur etwas zu drucken, wenn wir es ihm mitteilen. In diesem Fall passen wir Zeilen an, die (mindestens) 120 Zeichen enthalten, und verwenden sie , um sie zu drucken.
Die Frage nennt 'sed' spezifisch. Während ich alle anderen Antworten schätze, ist diese die einzige, die funktioniert, wenn sed alles ist, was Sie haben. – Leo
- 1. Suchen und Löschen von Zeilen weniger als X Zeichen lang
- 2. alle Zeilen löschen, die mit sed
- 3. Regext jedes Teilzeichen länger als 2 Zeichen
- 4. Linux Terminal: Suche nach Anzahl der Zeilen länger als x
- 5. Kann SDL2_ttf keine Zeichen darstellen, die länger als zwei Byte sind?
- 6. Muss ich E-Mail-Nachrichten, die länger als 72 Zeichen sind, in eine Zeile umbrechen?
- 7. Wie ShellExecute mit Pfadnamen länger als 57 Zeichen arbeiten?
- 8. Kate Texteditor kann nicht mit Zeilen länger als 1024 umgehen?
- 9. Suchen und Ersetzen mit sed
- 10. Jack Audio-Client-Name länger als 4 Zeichen bricht Client
- 11. sed Zeilen mit Schrägstrichen zu löschen, indem/
- 12. Warum ist die Bytegröße einer Zeichenfolge länger als die Länge?
- 13. Suchen und Ersetzen von Text in einer Datei zwischen Bereich von Zeilen mit sed
- 14. (RECHTS (KONVERT Teil von varchar 103 bis 120 DATETIME, um Ergebnisse als 120
- 15. Wordpress Titel: Wenn länger als 50 Zeichen, zeigen Ellipsis
- 16. Case-insensitive suchen und ersetzen mit sed
- 17. sed + "#" und leere Zeilen mit einem sed Befehl entfernen
- 18. "Quoted-Printable Linie länger als 76 Zeichen" Warnung beim Senden von HTML-E-Mail
- 19. Sql Einsatz wont Text einfügen länger als 40 Zeichen
- 20. Verwenden von sed zum Ersetzen/Entfernen von akzentuierten lateinischen Zeichen
- 21. Verursacht von: java.lang.IllegalArgumentException: Unzulässiges Zeichen in Abfrage bei Index 120
- 22. ausgewählte Zeilen Suchen in Datagridview als Objekt
- 23. Mehr als 120 Zähler in hadoop
- 24. Ausschließen von Zeilen durch Muster in sed
- 25. Mit sed Bereich von Zeilen mit Ausnahme der Endmuster
- 26. sed zum Suchen und Ersetzen von Chactern zwischen zwei Strings
- 27. Löschen von Zeilen aus Datei mit sed mit verschiedenen Mustern
- 28. Nummerierungszeilen, die mit sed dem Muster entsprechen
- 29. Abfrage läuft länger als Befehlszeitüberschreitung SSIS
- 30. sed - Klammern durch Zeichen ersetzen?
Danke. Es funktionierte. Wie kann ich die Zeilennummer bekommen? – Sravan
Irgendein Grund, 'Katze' zu benutzen? – choroba
awk 'Länge ($ 0)> 120 {Druck NR ":" $ 0}' – piokuc