![명령을 한 번만 실행하여 여러 파일에서 명령을 실행하려면 어떻게 해야 합니까?](https://linux55.com/image/74520/%EB%AA%85%EB%A0%B9%EC%9D%84%20%ED%95%9C%20%EB%B2%88%EB%A7%8C%20%EC%8B%A4%ED%96%89%ED%95%98%EC%97%AC%20%EC%97%AC%EB%9F%AC%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
31개의 구분된 파일 이름 chr1.txt ... chr31.txt에 대해 다음 명령을 실행하고 단 한 번의 실행으로 31개의 출력을 얻고 싶습니다.
이것은 명령입니다:
cat input.txt | sed 's/.\{5\}/& /g' > output.txt
어떤 제안이 있으십니까?
답변1
쉘이 중괄호 확장을 지원하는 경우 다음을 수행할 수 있습니다.
sed 's/.\{5\}/& /g' chr{1..31}.txt >output.txt
chr{1..31}.txt
로 확장됩니다 chr1.txt
. chr2.txt
... chr31.txt
전체 출력(모든 파일의)이 에 저장됩니다 output.txt
.
답변2
간단한 루프가 트릭을 수행합니다.
for((i=1;i<32;i++));do cat chr$i.txt | sed 's/.\{5\}/& /g' > output$i.txt; done