나는 하고 svn status --show-updates
그 다음에는 원한다
- Q1: 무시(표시하지 않음)
?
- Q2: *로 시작하는 줄만
*
표시합니다. * 앞에 공백이 여러 개 있다는 점에 유의하세요. 이는*
해당 줄의 첫 번째 문자가 아니라는 의미입니다.
어떻게 해야 하나요?
답변1
정규식을 사용하여 이러한 조건을 표현하고 grep
이러한 조건에 따라 결과를 필터링할 수 있습니다.
첫 번째는 입니다 ^?
. 캐럿은 줄의 시작을 나타내는 특수 문자이므로 이 표현은 바로 뒤에 오는 줄의 시작과 일치합니다 ?
.
두 번째는 입니다 ^ *\*
. 이전 문자를 한정하는 특수 문자 입니다 *
. 즉, 이전 문자가 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 \*