`ls`의 출력을 정렬하는 방법?


14

titlepage_19.pdf 전에 titlepage_1.pdf로 정렬 된이 출력을 볼 수 있습니까?

$ ls
allTitlepage.pdf         titlepage_12.pdf  titlepage_19.tex  titlepage_26.pdf  titlepage_32.tex  titlepage_4.tex
allTitlepage.tex         titlepage_12.tex  titlepage_1.pdf   titlepage_26.tex  titlepage_33.pdf  titlepage_5.pdf
assignment.pdf           titlepage_13.pdf  titlepage_1.tex   titlepage_27.pdf  titlepage_34.pdf  titlepage_5.tex
assignment.tex           titlepage_13.tex  titlepage_20.pdf  titlepage_27.tex  titlepage_34.tex  titlepage_6.pdf
graphicsAssignment2.pdf  titlepage_14.pdf  titlepage_20.tex  titlepage_28.pdf  titlepage_35.pdf  titlepage_6.tex
graphicsAssignment2.tex  titlepage_14.tex  titlepage_21.pdf  titlepage_28.tex  titlepage_35.tex  titlepage_7.pdf
README.md                titlepage_15.pdf  titlepage_21.tex  titlepage_29.pdf  titlepage_36.pdf  titlepage_7.tex
thesisTitlepage.pdf      titlepage_15.tex  titlepage_22.pdf  titlepage_29.tex  titlepage_36.tex  titlepage_8.pdf
thesisTitlepage.tex      titlepage_16.pdf  titlepage_22.tex  titlepage_2.pdf   titlepage_37.pdf  titlepage_8.tex
titlepage_0.pdf          titlepage_16.tex  titlepage_23.pdf  titlepage_2.tex   titlepage_37.tex  titlepage_9.pdf
titlepage_0.tex          titlepage_17.pdf  titlepage_23.tex  titlepage_30.pdf  titlepage_38.pdf  titlepage_9.tex
titlepage_10.pdf         titlepage_17.tex  titlepage_24.pdf  titlepage_30.tex  titlepage_38.tex  titlepage_one.pdf
titlepage_10.tex         titlepage_18.pdf  titlepage_24.tex  titlepage_31.pdf  titlepage_3.pdf   titlepage_one.tex
titlepage_11.pdf         titlepage_18.tex  titlepage_25.pdf  titlepage_31.tex  titlepage_3.tex   titlepage_two.tex
titlepage_11.tex         titlepage_19.pdf  titlepage_25.tex  titlepage_32.pdf  titlepage_4.pdf

3
제목은 복제본처럼 보이기 때문에보다 구체적이어야합니다 (어쨌든).
Peter Mortensen

답변:


31

스위치를 사용하십시오 -v [텍스트 내 자연스런 (버전) 숫자]

ls -v

단일 열을 원하면 ls -1v
Vijay

13

출력이 정렬됩니다. ls맨 페이지 에 따르면 :

-cftuvSUX 및 --sort가 지정되지 않은 경우 항목을 사전 순으로 정렬하십시오.

그러나 더 나아가고 싶다면 최소한 두 가지 옵션이 있습니다.

옵션 1- ls정렬 스위치

man lsls 매뉴얼 페이지 에 정렬에 사용할 수있는 여러 스위치에 대해 알려줍니다 .

없음 (-U), 크기 (-S), 시간 (-t), 버전 (-v), 확장 (-X)

귀하의 경우 "버전"정렬 (-v)을 원합니다. 그러나 이것이blahblah-X.Y.Z-A 전체적으로 원하는 것이 아닌 배열 을 가진 항목을 정렬하므로주의하십시오 . 버전 정렬에 대한 GNU 설명 도 참조하십시오 .

옵션 2-정렬 명령으로 파이프

파이프 |를 사용 하여 출력을 다른 명령으로 보낼 수 있습니다 ( 예 : 파일 번호가 매겨진 경우에 유용한 여러 가지 다른 방법으로 정렬하는 데 사용할 수 있는 명령) . 스위치 보장하는 출력은 한 줄 당 파일입니다.sortls -1 | sort -n-1

마찬가지로 sed또는 과 같은 것을 사용하여 정렬을 돕기 위해 출력을 조작 할 수 있습니다 awk.

이런 종류의 질문에 대답하는 방법은 많이 있습니다. 리눅스 쉘 튜토리얼이 도움이 될 수 있습니다.

* (내가 무엇을했는지 보시겠습니까? :-p)


6

주석에서 이미 지적했듯이 출력 이미 정렬되었지만 숫자가 아닌 문자별로 정렬됩니다. 당신은 파이프의 출력 할 수 있습니다 ls통해 sort문자열 내에서 숫자 정렬에 스위치가있는을 :

ls | sort --version-sort

로부터 :

-V, --version-sort
         natural sort of (version) numbers within text

단점 : 우리가 발행하면 게시물에 표시된 것처럼 현재 화면에 맞는 수의 열이 ls있는 테이블 의 파일을 출력합니다 . 그러나 ls출력이 파일 또는 파이프로 리디렉션되는 것을 알 때 (에서와 같이 ls | sort) 출력은 한 줄씩 (파일별로) 처리된다고 가정하기 때문에 열에 ls파일 을 인쇄합니다. 다른 프로그램에 의해 (예 :). 따라서 출력은 여러 열이있는 테이블 대신 한 열에 있습니다. 이를 피하는 방법 은 @vijay 의 간단하지만 완벽한 답변 을 참조하십시오 .sortls | sort -V


1
다음에 출력을 파이프 할 수도 있습니다.column
David Conrad

0

ls -l : 디렉토리의 파일을 세로로 나열하지만 특정 순서로 나열하지는 않습니다.

ls -l | sort -k 3: -k 3이전 명령의 출력을 3 번째 열로 정렬합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.