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.