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.