답변:
일부 버전에는 널 종료 레코드를 허용 sort
하는 -z
옵션이 있습니다.
find folder1 folder2 -name "*.txt" -print0 | sort -z | xargs -r0 myCommand
또한 다음과 같은 고급 스크립트를 작성할 수도 있습니다.
find folder1 folder2 -name "*.txt" -print0 | python -c 'import sys; sys.stdout.write("\0".join(sorted(sys.stdin.read().split("\0"))))' | xargs -r0 myCommand
인수와 함께 호출 되도록 -r
옵션을 추가 xargs
하십시오 myCommand
.
-t \0
sort ( -z
동의어) 옵션 도 있습니다
|sort
솔루션 의 문제점 은 -exec
더 이상 사용할 수 없다는 것 입니다. OK, -exec
와 함께 작동하도록 주어진 문장을 다시 작성할 수는 있지만 xargs
, "미니 스크립트"는 무엇입니까? ( sh -c ...
) 나는 함께 '쉬 -c'미니 스크립트를 변환하는 그 사소한를 호출 할 것이다 다수 가 함께 작업 할 수 있도록 명령 xargs
(즉 모든 가능한 경우)
printf %s\\n a b c d e | xargs -n3 sh -c 'printf %s, "$@"; printf \\n' x
-n
sort #에 대한 플래그 가 필요하다고 생각합니다 .
사람 정렬에 따르면 :
-n, --numeric-sort
compare according to string numerical value
편집하다
print0은 이것과 관련이있을 수 있습니다. 방금 테스트했습니다. print0을 꺼내십시오. -z
플래그를 사용하여 문자열을 정렬하여 null을 종료 할 수 있습니다
print0
불행히도 내 명령에 전달 해야하는 파일 이름을 공백으로 구분 하는 것으로 보입니다.
GNU Parallel http://www.gnu.org/software/parallel/을 설치 한 경우 다음을 수행 할 수 있습니다.
find folder1 folder2 -name "*.txt" -print |
sort |
parallel myCommand
다음과 같이 GNU Parallel을 간단하게 설치할 수 있습니다.
wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem
자세한 내용은 GNU Parallel 소개 동영상을 참조하십시오 . https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
.
다르게 처리sort
합니다 ... 목록의 끝에 감겨져 ...python
맨 위로 정렬됩니다. (Python sorts withLC_COLLATE=C
)