색인 번호를 기준으로 디렉토리의 파일을 정렬하는 방법은 무엇입니까?

색인 번호를 기준으로 디렉토리의 파일을 정렬하는 방법은 무엇입니까?

다음과 같은 파일이 있습니다.

4-some file.mp4
1-another file.mp4
3-one more file.mp4
2-got another file.mp4

등.

vlc에서 파일을 재생하려면 명령줄을 사용하고, vlc *정렬되지 않은 순서로 파일을 재생하려면 사용하세요.

그래서 vlc ""를 사용하여 파일을 재생하려고 하면 vlc < <(ls * | sort -V)작동하지 않습니다.

파일의 전체 목록이 하나의 인수로 표시되므로 를 사용하여 파일의 타임스탬프를 변경하려고 하면 for i in "$(ls [!R]* | sort -V)"; do touch "$i";sleep 1; done작동하지 않지만 파일 이름에 공백이 있기 때문에 큰따옴표를 제거할 수 없습니다."$(ls [!R]* | sort -V)"

답변1

이것은 작동합니다

find . -name "*mp4" -print0 | sort -Vz | xargs -0 vlc

답변2

-v natural sort of (version) numbers within text예를 들어 GNU ls에는 sort -V.

파일 이름의 공백은 에서 공백을 제거하여 처리할 수 있습니다 $IFS(파일 이름에 줄 바꿈이 없다고 가정).

$ IFS=$'\n' 
$ for x in $(ls -v) ; do echo "> $x" ; done
> 1-aa aa
> 2-cc cc
> 10-bb bb
> 21-dd dd
$ vlc $(ls -v)

(이 작업을 대화형으로 수행하면 IFS변경 사항이 나중에 수정된 상태로 유지됩니다.)

자세한 내용은 IFS다음을 참조하세요.파일 이름의 특수 문자에 대한 David Wheeler의 작업

관련 정보