Je fais svn status --show-updates
et puis je veux soit
?
*
Notez qu'il y a peu d'espaces avant * se produit. Cela signifie que *
n'est pas le premier caractère de la ligne. Comment puis je faire ça?
Vous pouvez exprimer ces conditions en utilisant des expressions régulières et utiliser grep
pour filterr les résultats en fonction de celles-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 correspond au début de la ligne immédiatement suivie 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. Puisque *
est un caractère spécial, celui que vous searchz doit être échappé, par conséquent, \*
. Cette expression correspondra donc au début d'une ligne suivie de zéro ou plus d'espaces, suivis d'un astérisque.
Pour votre première condition, utilisez l'option -v
pour grep
pour annuler les résultats.
Donc finalement,
svn status --show-updates | grep -v '^?'
ou
svn status --show-updates | grep '^ *\*'
Les expressions régulières sont très puissantes, tant d'outils Unix peuvent les utiliser. Ils valent vraiment la peine d'apprendre. Il y a un grand tutoriel à regular-expressions.info .
Q1: Un moyen simple est le suivant
svn st --show-updates -q
st est l'abréviation de status et -q pour quiet: cela exclut les files qui ne sont pas déjà ajoutés dans le référentiel.
Q2: si vous n'avez pas nommé vos files avec *, vous pouvez également le faire:
svn status --show_updates|grep -v \*