Ich mache svn status --show-updates
und dann möchte ich entweder
- F1:
Zeilen ignorieren (nicht anzeigen), die mit?
beginnen - F2:
Nur Zeilen anzeigen, die mit*
beginnen Beachten Sie, dass vor dem * einige Leerzeichen stehen. Das bedeutet, dass*
ist nicht das erste Zeichen in der Zeile.
Wie kann ich das tun?
Akzeptierte Antwort:
Sie können diese Bedingungen mit regulären Ausdrücken ausdrücken und grep
verwenden um die Ergebnisse danach zu filtern.
Der erste ist ^?
. Das Karat ist ein Sonderzeichen, das den Beginn einer Zeile darstellt; so entspricht der Ausdruck dem Anfang der Zeile, unmittelbar gefolgt von einem ?
.
Der zweite ist ^ *\*
. Der *
ist ein Sonderzeichen, das das vorhergehende Zeichen qualifiziert – es bedeutet, dass das vorhergehende Zeichen null oder mehrmals vorkommen kann. Seit *
ein Sonderzeichen ist, muss das gesuchte Zeichen maskiert werden, also \*
. Dieser Ausdruck entspricht also dem Beginn einer Zeile, gefolgt von null oder mehr Leerzeichen, gefolgt von einem Sternchen.
Verwenden Sie für Ihre erste Bedingung das -v
Option für grep
um die Ergebnisse zu negieren.
Also endlich,
svn status --show-updates | grep -v '^?'
oder
svn status --show-updates | grep '^ *\*'
Reguläre Ausdrücke sind sehr leistungsfähig, sodass viele Unix-Tools sie verwenden können. Es lohnt sich sehr, sie zu lernen. Es gibt ein tolles Tutorial auf regular-expressions.info.