HINWEIS: Diese Frage ist die Ergänzung zu dieser Frage und Antwort: Wie kann man die Zeilenlänge * nicht * in einem bestimmten Bereich "abfragen"?
Ich brauche nur die Zeilen aus einer Textdatei (eine Wortliste, die durch Zeilenvorschub getrennt ist) mit einem Längenbereich von mindestens 3 Zeichen, jedoch nicht mehr als 10 Zeichen.
Beispiel:
EINGANG:
egyezményét
megkíván
ki
alma
kevesen
meghatározó
AUSGABE:
megkíván
alma
kevesen
Frage: Wie kann ich das in machen bash
?
grep -x '.\{3,10\}'
Antworten:
woher
-x
Muster an ganze Linie anpassen.
irgendein Symbol{3,10}
Quantifizierung des 3- bis 10-fachen des vorherigen Symbols (falls vorhanden)quelle
mit egrep
Entspricht vom Anfang bis zum Ende von Zeilen für 3 oder mehr Zeichen, jedoch weniger als oder gleich 10 Zeichen.
quelle
Verwenden von
sed
:Oder:
quelle
Verwenden von
awk
:Die
length
Anweisung würde$0
standardmäßig die Länge (des aktuellen Datensatzes / der aktuellen Zeile) zurückgeben, und diese wird vom Code verwendet, um zu testen, ob die Länge der Zeile innerhalb des angegebenen Bereichs liegt. Wenn für einen solchen Test kein entsprechender Aktionsblock vorhanden ist, wird standardmäßig der Datensatz gedruckt.Prüfung auf die angegebenen Daten:
Ähnliches gilt für Perl:
quelle