ANMERKUNG: Diese Frage ist die Ergänzung zu dieser Frage und Antwort: Wie kann die Zeilenlänge in einem bestimmten Bereich ermittelt werden?
Wie können wir nach Zeilen suchen, die weniger als 8 oder mehr als 63 Zeichen enthalten, keine, die mehr als 8 und weniger als 63 Zeichen enthalten?
Also, einige akzeptable Zeichenanzahl könnte sein ...
7 6 5 4 3 2 1 0
...und...
64 65 66 67 ...
text-processing
grep
regular-expression
LoukiosValentine79
quelle
quelle
grep
, aber Sie können Folgendes in Betracht ziehenawk
, insbesondere, wenn Sie weitere Verarbeitung usw. benötigen (sehr flexibel und lesbar ):awk '( length($0)<8 ) || ( length($0)>63 )'
#Die Standardaktion einer Bedingung besteht darin, die Zeile (n) zu drucken, die der Bedingung entsprechen. Oder mit weniger Verarbeitung bei 0 $:awk '{ l=length($0) ; if (( l<8 ) || l>63 ) { print $0 ;} }'
Antworten:
grep
's-x
- Schalter bezeichnet eine ganze Linie Spiel - die , dass jedes Muster abgestimmt zu sagen ist , muß eine Linie vom Kopf bis zum Schwanz definieren. tun...... ist in der Regel gleichbedeutend mit ...
grep
Mit dem-v
Schalter wird der Einfluss eines Musters auf die Zeilenauswahl aufgehoben. im Allgemeinen tun ...... wählt nur Linien aus, die dem Muster entsprechen, aber mit einem
-v
negierten Muster werden jedoch nur die Linien ausgewählt, die nicht übereinstimmen....und so...
... stimmt mit allen Zeilen überein, die von Kopf bis Ende aus 8 bis 63 Zeichen bestehen, und die
-v
negierte Auswahl bewirkt, dassgrep
nur alles andere gedruckt wird.quelle