Je fais svn status --show-updates
et puis je veux soit
- Q1 :
ignorer (ne pas afficher) les lignes commençant par?
- Q2 :
afficher uniquement les lignes commençant par*
Notez qu'il y a peu d'espaces avant l'apparition de *. Cela signifie que*
n'est pas le premier caractère de la ligne.
Comment puis-je faire cela ?
Réponse acceptée :
Vous pouvez exprimer ces conditions à l'aide d'expressions régulières et utiliser grep
pour filtrer les résultats en fonction de ceux-ci.
Le premier est ^?
. Le carat est un caractère spécial qui représente le début d'une ligne; de sorte que l'expression corresponde au début de la ligne immédiatement suivi d'un ?
.
Le second est ^ *\*
. Le *
est un caractère spécial qui qualifie le caractère précédent - cela signifie que le caractère précédent peut apparaître zéro ou plusieurs fois. Depuis *
est un caractère spécial, celui que vous recherchez doit être échappé, donc \*
. Ainsi, cette expression correspondra au début d'une ligne suivi de zéro ou plusieurs espaces, suivi d'un astérisque.
Pour votre première condition, utilisez le -v
option pour grep
pour annuler les résultats.
Alors finalement,
svn status --show-updates | grep -v '^?'
ou
svn status --show-updates | grep '^ *\*'
Les expressions régulières sont très puissantes, c'est pourquoi de nombreux outils Unix peuvent les utiliser. Ils valent vraiment la peine d'être appris. Il y a un super tutoriel sur regular-expressions.info.