한 명령의 출력을 다른 명령의 입력으로 사용하는 방법

한 명령의 출력을 다른 명령의 입력으로 사용하는 방법

매주 수요일에 만드는 모든 백업의 복사본을 만듭니다. 각 파일의 타임스탬프는 정렬되지 않지만 각 파일의 날짜는 수요일입니다.

이제 타임스탬프를 기준으로 각 파일을 정렬해야 합니다. 예를 들어 날짜가 5월 1일이면 먼저 5월 1일의 백업 파일을 표시한 다음 5월 8일의 파일을 표시해야 합니다.

이 명령을 사용했지만 당연히 오류가 발생했습니다.

sort $(cat /home/emerg/Wedbackup.txt)

오류는 다음과 같습니다

sort: invalid option -- w

한 명령의 출력을 두 번째 명령의 입력으로 사용하는 방법을 모르기 때문입니다. 어떻게 해야할지 조언이 필요합니다.

답변1

이 경우에는 cat을 사용할 필요가 없습니다.

sort /home/emerg/Wedbackup.txt

귀하의 예에서 문제는 파일이 다음과 같이 전달된다는 것입니다.명령줄일종의, 그것은 당신이 원하는 것이 아닙니다. 예를 들어, 이것이 귀하의 파일인 경우:

foo bar
baz qux
wibble wobble

매개변수는 다음과 같습니다:

sort foo bar baz qux wibble wobble

당신이 원하는 것이 아닌가요? 실제로 원하는 것은 파일을 sortstdin으로 전달하는 것입니다. 이는 다음과 같이 수행할 수 있습니다.

sort < /home/emerg/Wedbackup.txt

파일 이름을 인수로 사용하는 것은 특정 sort하고 보편적인 규칙이 아니기 때문에 이는 더 일반적입니다.

정렬의 경우 표준 입력보다는 파일 이름을 인수로 전달하는 것이 좋습니다. 이렇게 하면 파일을 검색할 수 있어 정렬이 더 효율적이 될 수 있습니다.

답변2

다음과 같이 파이프를 사용해야 합니다.

cat /home/emerg/Wedbackup.txt | sort

관련 정보