
list20140801.txt list20140802.txt ...라는 파일 폴더가 있습니다.
나는 이것을하려고 노력하고있다.
ls | sort | tail -3 | cat
하지만 파일 이름만 알려주는 것이지 파일 이름을 분류하는 것은 아닙니다.
답변1
매뉴얼 에 따르면 cat
고양이의 임무는 다음과 같습니다.
FILE 또는 표준 입력을 표준 출력에 연결합니다.
cat
표준 입력을 파일 이름으로 처리해야 할 이유가 없습니다 . 당신에게 필요한 것은
ls | 정렬 | 꼬리 -3 | xargs 고양이
대신에.
xargs
자세한 내용은 매뉴얼 페이지를 확인하세요 .http://linux.about.com/library/cmd/blcmdl1_xargs.htm
답변2
의 출력은 기본적으로 정렬 ls
과 동일한 방식으로 이미 기본적으로 정렬되어 있으므로 필요하지 않습니다.sort
sort
생성된 파일 목록을 명령에 전달하는 가장 일반적인 방법은 xargs
. 자세한 내용은 매뉴얼 페이지를 참조하세요 xargs
. 하지만 이 경우에는 어떤 옵션도 필요하지 않습니다. ( xargs
파일 수가 많으면 원하는 대로 되지 않을 수도 있지만, 대부분의 경우에는 그것에 대해 생각할 필요 없이 잘 작동합니다.)
tail
요즘 많은 Linux 시스템에서 사용되는 버전은 -3
옵션으로만 허용되지 않습니다. 를 사용해야 합니다 -n3
.
마지막으로 cat
파이프라인 끝에 있는 는 유용한 작업을 수행하지 않으므로 생략할 수도 있습니다.
이 명령은 원하는 대로 작동해야 합니다.
ls | xargs tail -n3
업데이트
tail
방금 @AtomicHeartFather의 답변을 읽고 문제의 잘못된 부분을 넣었을 수도 있다는 것을 깨달았습니다 . 이 경우 명령은 다음과 같습니다.
ls | tail -n3 | xargs cat
이는 AtomicHeartFather가 sort
.