Eseguo svn status --show-updates e poi voglio entrambi
- Q1:
ignora (non visualizzare) le righe che iniziano con? - Q2:
visualizza solo le righe che iniziano con*Nota che ci sono pochi spazi prima che si verifichi *. Ciò significa che*non è il primo carattere della riga.
Come posso farlo?
Risposta accettata:
Puoi esprimere queste condizioni usando espressioni regolari e usare grep per filtrare i risultati in base a quelli.
Il primo è ^? . Il carato è un carattere speciale che rappresenta l'inizio di una linea; in modo che l'espressione corrisponda all'inizio della riga immediatamente seguito da un ? .
Il secondo è ^ *\* . Il * è un carattere speciale che qualifica il carattere precedente:significa che il carattere precedente può apparire zero o più volte. Dal * è un carattere speciale, quello che stai cercando deve essere sottoposto a escape, quindi \* . Quindi quell'espressione corrisponderà all'inizio di una riga seguita da zero o più spazi, seguiti da un asterisco.
Per la tua prima condizione, usa -v opzione per grep per negare i risultati.
Quindi, finalmente,
svn status --show-updates | grep -v '^?'
o
svn status --show-updates | grep '^ *\*'
Le espressioni regolari sono molto potenti, quindi molti strumenti Unix possono usarle. Vale davvero la pena impararli. C'è un ottimo tutorial su regular-expressions.info.