![파일을 출력하고 "?"로 시작하는 줄을 무시하려면 어떻게 해야 합니까?](https://linux55.com/image/21049/%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B3%A0%20%22%3F%22%EB%A1%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EC%A4%84%EC%9D%84%20%EB%AC%B4%EC%8B%9C%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
나는 하고 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 \*