나는 다음과 같은 것을 실행합니다 :
% command *bin > log.txt
*b
a.bin
, b.bin
, 로 확장합니다 c.bin
.
log.txt
각 파일의 표준 출력이 별도의 파일 (또는 a.txt, b.txt, c.txt) 로 끝나기를 원합니다 .어떻게 해야 하나요?
검색하다가 하나의 파일(예. )을 처리하여 여러 개의 로그 파일을 생성하는 방법에 대한 질문을 많이 찾았 $ command a.bin > log1.txt log2.txt log3.txt
지만 내 경우에는 해당되는 내용이 없습니다(분명히 존재하지만 괄호 안의 사례 상황과 같은 질문에 빠져 있습니다).
답변1
별도의 출력 파일을 원하는 경우 해당 파일을 하나씩 처리해야 합니다. STDOUT
( STDERR
및 STDIN
)은 명령이 시작되기 전에 상위 프로세스에 의해 설정되고 프로그램에서는 이를 결코 볼 수 없기 때문에 리디렉션을 사용하여 이 작업을 수행할 수 없습니다 >log.txt
.
다음과 같이 하십시오:
for i in "*.txt" ; do
j="${i}.log"
command "$i" >"$j"
done