Wie etwas grep, die mit einem CharakterSuche mit grep nach Worten beginnt und endet mit
ABC-0
ABC-1
ABC-10
ABC-20
I
Wie etwas grep, die mit einem CharakterSuche mit grep nach Worten beginnt und endet mit
ABC-0
ABC-1
ABC-10
ABC-20
I
Es ist nicht beginnt und endet wanto grep -v für ABC-0 und ABC-1 klar, was du meinst. Wenn Sie ein Zeichen an dem Anfang und ein zweistelligen am Ende wollen, könnten Sie
^[A-Za-z].*\d\d$
verwenden, wenn Sie nur einen Bindestrich wollen und dann eine einzelne Ziffer, zu verwenden:
^[A-Za-z].*-\d$
Wenn Sie egal, wie viele Stellen gibt es (ein oder mehr), aber es hat ein Bindestrich, Gebrauch sein:
^[A-Za-z].*-\d+$
Wenn keiner von denen sind, was Sie wollen, bitte weitere Informationen geben ... Der erste Satz Ihrer Frage stimmt nicht wirklich mit dem Rest überein.
Für Ihr Beispiel
egrep -v "^(ABC)-(0|1)$"
ist die Antwort. Für den allgemeinen Fall, bitte sehen Sie Jon Antwort
^
markiert den Beginn des Musters, $
das Ende. |
bedeutet or
Wenn Sie versuchen, Wörter \b
als Worttrennzeichen verwenden entsprechen, wie folgt aus:
\ b [A-Za-z] - \ d + \ b
von this reference:
\b
- Entspricht der Position betwee na Wortzeichen (etwas abgestimmt durch\w
) und ein Nicht-Wortzeichen (etwas abgestimmt durch[^\w]
oder\W
) sowie wie zu Beginn und/oder am Ende der Zeichenkette, wenn die ersten und/oder letzte Zeichen in der Zeichenfolge sind Wortzeichen.
Während Sie das PCRE-Verhalten in einigen Versionen von grep mit "grep -P" ermitteln können, ist \ b fehlerhaft und verhält sich nicht zuverlässig. Insbesondere wird die Registerkarte nicht als Wortbegrenzungszeichen erkannt ('\ b/www \ n' in GNU grep 2.6.3). Hätte das funktioniert, wäre das die beste Antwort (und ich wünschte, es würde funktionieren!)! –
Vielen Dank für diese Information. –
Sie haben den Quantifizierer für '[A-Za-z]' vergessen. – Gumbo
Oder vielmehr, ich habe andere Dinge danach vergessen - wir wissen nicht, ob A00-10 akzeptabel wäre. Trotzdem behoben, danke. –