나는 거대한 파일에서 실행되는 매우 긴 명령을 가지고 있으며 이를 두 번 실행해야 하므로 런타임이 두 배로 늘어납니다.
이것이 내가 지금 하고 있는 일입니다:
x=$(command | sort -u)
y=$(command | sort -n)
위에서 and 를 사용하여 했던 것처럼 명령의 출력을 sort -u
and 로 리디렉션 sort -n
하고 각 명령의 출력을 별도의 변수나 파일에 저장할 수 있는 방법이 있는지 궁금합니다 .x
y
나는 성공하지 못한 채 다음을 수행하기 위해 tee를 사용해 보았습니다.
command | tee >(sort -n > x.txt) >(sort -u > y.txt)
출력을 텍스트 파일로 리디렉션하려고 시도했지만 표준 출력으로만 인쇄됩니다.
어떤 제안이나 아이디어가 있나요?
답변1
당신은 정말 가깝습니다
command | tee >(sort -n >/tmp/x.txt) | sort -u >/tmp/y.txt
궁금하다면 >( ... )
작업이 설명자 파이프의 경로(예: /dev/fd/1234
)로 대체되므로 결과 파이프는 이 모양을 가지며 /dev/fd/1234
다른 sort
명령 에 추가됩니다.
command | tee /dev/fd/1234 | sort > /path/to/elsewhere
sort
ed 출력을 변수로 캡처합니다 (논평, 질문이 아닙니다)
var=$(command | tee >(sort -n > x.txt) >(sort -u > y.txt) | sort -u)