我愿意svn status --show-updates
,然后我想要
- Q1:忽略(不显示)以
?
- Q2:仅显示以开头的行
*
请注意,* 之前有几个空格。这意味着这*
不是该行的第一个字符。
我怎样才能做到这一点?
答案1
您可以使用正则表达式表达这些条件,并grep
根据这些条件过滤结果。
第一个是^?
。克拉是一个特殊字符,代表一行的开头;以便该表达式匹配紧随其后的行的开头?
。
第二个是^ *\*
。是*
一个特殊字符,限定前一个字符 - 这意味着前一个字符可以出现零次或多次。由于*
是一个特殊字符,因此您要查找的字符需要转义,因此\*
.因此该表达式将匹配行的开头,后跟零个或多个空格,最后跟一个星号。
对于第一个条件,请使用-v
选项 forgrep
来否定结果。
所以最后,
svn status --show-updates | grep -v '^?'
或者
svn status --show-updates | grep '^ *\*'
正则表达式非常强大,因此许多 Unix 工具都可以使用它们。他们非常值得学习。有一个很棒的教程正则表达式.info。
答案2
Q1:一个简单的方法如下
svn st --show-updates -q
st 是 status 的缩写,-q 是 Quiet 的缩写:它将排除尚未添加到存储库中的文件。
Q2:如果你的文件名没有带*,你也可以这样做:
svn status --show_updates|grep -v \*