私はsvn status --show-updates
それをしたいです。
- Q1:無視(表示しない)
?
- Q2:*で始まる行のみを
*
表示します。 *前に複数のスペースがあることに注意してください。これは*
、その行の最初の文字ではないという意味です。
どうすればいいですか?
答え1
正規表現を使用してこれらの条件を表現し、grep
これらの条件に基づいて結果をフィルタリングできます。
最初はです^?
。キャレットは行の始まりを表す特殊文字なので、この表現は直後の行の始まりと一致します?
。
2番目はです^ *\*
。前の文字を限定する特殊文字です*
。つまり、前の文字が0回以上表示されることがあります。探している文字は*
特殊文字なので、エスケープする必要があります。したがって、.so\*
式は行の先頭に一致し、その後に0個以上のスペースが続き、最後にアスタリスクが続きます。
最初の条件では、-v
オプションを使用してgrep
結果を否定します。
だから結局、
svn status --show-updates | grep -v '^?'
または
svn status --show-updates | grep '^ *\*'
正規表現は非常に強力であり、多くのUnixツールで使用できます。彼らは十分に学ぶ価値があります。素晴らしいチュートリアルがあります正規表現、情報。
答え2
Q1:簡単な方法は次のとおりです
svn st --show-updates -q
st は状態の略語、-q は Quiet の略語です。リポジトリにまだ追加されていないファイルを除外します。
Q2:ファイル名に*が含まれていない場合は、次のようにすることもできます。
svn status --show_updates|grep -v \*