일련의 와일드카드 패턴이 포함된 파일에서 파일 목록 생성

일련의 와일드카드 패턴이 포함된 파일에서 파일 목록 생성

zsh일련의 와일드카드 패턴이 포함된 파일을 구문 분석하여 파일 목록을 작성하는 방법을 찾고 있습니다 .

최종 목표는 이 파일 목록을 hg addMercurial에 전달하는 것입니다. 이 특정 부분에 관심이 있는 분들을 위해 제가 StackOverflow에서 요청한 또 다른 질문으로 인해 제 질문이 촉발되었습니다.

샘플 파일(이라고 함 .hginclude)은 다음과 같습니다.

.zshrc                                                                                                                                                                                                                                                                                    
.zprofile                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
.less*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
.emacs*/**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
src*/**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
.hg*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
.bash*                                                                                                                                                                                                                                                                             
.inputrc                                                                                                                                                                                                                                                                                  
.ssh

스크립트의 출력은 다음과 같아야 합니다.문서출력을 수집하여 획득

print globbing_pattern

각 줄에서 여기서는 globbing_pattern위 파일의 각 줄을 나타냅니다 .hginclude.

궁극적으로 파일 목록은 hg add이러한 파일을 추적하기 위해 Mercurial에 전달할 수 있는 목록이어야 합니다.

이 부분에 대한 가정은 .hgignore다음과 같습니다.

syntax: glob
*

즉, command 를 통해 명시적으로 추가되지 않는 한 아무것도 추적하지 마세요 hg add.

답변1

바라보다hg 도움말 모드. Mercurial은 파일에서 파일 이름 읽기를 지원하므로 다음을 수행할 수 있습니다.

$ hg add listfile:myfiles.txt

myfiles.txt추가할 파일 이름을 포함합니다 . 더 흥미로운 점은 Mercurial의 "파일 이름"이 글로벌 패턴이 될 수 있다는 것입니다. 그래서 당신은 myfiles.txt포함 할 수 있습니다

.zshrc
.zprofile
glob:.less*
glob:.emacs*/**

잠깐, hg add위의 명령이 올바른 일을 할 것입니다.

당신은 사용할 수도 있습니다파일 세트문서를 선택하세요. find유사한 일을 할 수 있게 해주는 유사한 언어 입니다.

set:exec() and not binary()

바이너리가 아닌 실행 파일(예: 스크립트)을 선택하세요.


위의 명령~ 할 것이다파일 .hgignore은 존중되므로 문제를 해결하는 데 직접 사용할 수 없습니다. 그러나 다음을 사용할 수 있습니다.

$ hg status --all --no-status listfile:myfiles.txt

일반적으로 무시되는 모든 파일을 포함하여 패턴과 일치하는 파일 목록을 가져옵니다. 그런 다음 이 파일 목록을 계속 진행할 수 있습니다 hg add.

$ hg status -A -n -0 listfile:myfiles.txt | xargs -0 hg add

답변2

이 시도:

 hg add `for i in `cat myfiles.txt` ; do ls $i ; done`

myfiles.txt에는 glob이 포함되어 있습니다. 그러나 물론 initpc의 제안이 더 깨끗합니다.

관련 정보