파이프된 명령의 결과를 분석하려고 합니다.

파이프된 명령의 결과를 분석하려고 합니다.

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과 동일한 방식으로 이미 기본적으로 정렬되어 있으므로 필요하지 않습니다.sortsort

생성된 파일 목록을 명령에 전달하는 가장 일반적인 방법은 xargs. 자세한 내용은 매뉴얼 페이지를 참조하세요 xargs. 하지만 이 경우에는 어떤 옵션도 필요하지 않습니다. ( xargs파일 수가 많으면 원하는 대로 되지 않을 수도 있지만, 대부분의 경우에는 그것에 대해 생각할 필요 없이 잘 작동합니다.)

tail요즘 많은 Linux 시스템에서 사용되는 버전은 -3옵션으로만 허용되지 않습니다. 를 사용해야 합니다 -n3.

마지막으로 cat파이프라인 끝에 있는 는 유용한 작업을 수행하지 않으므로 생략할 수도 있습니다.

이 명령은 원하는 대로 작동해야 합니다.

ls | xargs tail -n3

업데이트

tail방금 @AtomicHeartFather의 답변을 읽고 문제의 잘못된 부분을 넣었을 수도 있다는 것을 깨달았습니다 . 이 경우 명령은 다음과 같습니다.

ls | tail -n3 | xargs cat

이는 AtomicHeartFather가 sort.

관련 정보