2004년 5월 25일 화요일

"인수 명단이 너무 김" 에러시 많은 수의 파일 다루기

파일의 갯수가 넘으많으면 shell에서 와일드카드(*, ?)를 쓸 수 없게 된다.
인수 명단이 너무 길다는 에러를 내기 때문인데.

이 때는 파일 목록을 만들어서 xargs 등으로 처리해야 한다.

예1) 파일의 모든 내용을 하나의 파일로 합치기
ls | xargs cat > 합쳐진 파일명

예2) 파일 목록 얻은 후 필요한 파일만 하나의 파일로 합치기
ls > file_list.txt
file_list.txt 중 필요한 내용을 적절히 편집한 후.
cat file_list.txt | xargs cat > 합쳐진 파일명

예3) 하위 디렉토리의 모든 파일의 압축을 풀고 grep 사용해서 필요한 내용만 보기
$ time sh -c "find ./2004* -name *.html_info.gz | xargs zcat | grep \"^url:\" | wc"

댓글 없음:

댓글 쓰기