grep nach Wörtern von nicht mehr als einer bestimmten Länge


9

Ich suche nach einer Möglichkeit, Dinge zu erfassen wie: i log for E M, i 1 f x i 0, I xi 1, 3 1,.einfach basierend auf der Anzahl der Zeichen.

Nichts in dieser hypothetischen Ausgabe ist länger als drei Zeichen. Dieser hypothetische Einzeiler würde ungefähr so ​​aussehen grep -v [:alnum:] > {3}. (Außer ich weiß einfach nicht, wie ich das in grep-Syntax schreiben soll.)


Möchten Sie Zeichen wie ,und .als Teil eines Wortes abgleichen?

Antworten:


19
grep -o -w '\w\{1,3\}' data

Optionen sind:

  • -o drucke nur übereinstimmende Wörter
  • -w stimmen nur mit ganzen Wörtern überein

Es werden nur Wörter (in grep \ w = [[: alnum:]] = [A-Za-z0-9]) mit einer Länge von 1 bis 3 (angegeben durch {1,3}) gefunden.


Vielen Dank. Die grundlegende Syntax Ihrer Antwort ist die, die ich brauchte, und am Ende habe ich nur grep '\ w \ {3}' Daten und den gleichen Befehl mit grep -v verwendet.
ixtmixilix
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.