저는 Unix 컴퓨터에서 프로그램을 실행하고 있습니다. 300사이클을 가지고 있습니다. 각 주기는 각각 1.txt, 2.txt, 3.txt 및 4.txt를 호출하는 4개의 파일을 생성합니다. 다음 루프에서는 새 파일이 이전 파일을 덮어씁니다. 이제 파일이 정확히 루프 1, 루프 50, 루프 100 등에 있기를 원합니다. 하지만 하루 종일 앉아서 프로그램 실행을 지켜볼 수는 없습니다. 이러한 .txt 파일이 실행 디렉터리에 나타날 때 루프 카운터로 이름을 바꾸는 작업을 수행하는 스크립트가 있습니까(첫 번째 루프의 1.txt 파일은 1_1.txt이고 두 번째 루프의 1.txt 파일입니다) .txt 파일은 2_1.txt가 될 것이며 곧...)
답변1
이를 수행하는 방법에는 여러 가지가 있습니다. 어느 것이 가장 잘 작동하는지는 스크립트 작동 방식에 따라 다릅니다. 최소한 스크립트나 스니펫을 포함하도록 질문을 편집할 수 있다면 귀하의 상황에 대한 보다 정확한 답변을 반영하도록 편집하겠습니다.
다음은 300번 실행되는 for 루프의 예입니다.
for i in {1..300}; do
echo "test$i" > 1.txt
echo "test$i" > 2.txt
echo "test$i" > 3.txt
echo "test$i" > 4.txt
done
현재로서는 언급한 스크립트처럼 1-4.txt가 각 루프를 덮어쓰게 됩니다.
간단한 해결책은 다음과 같습니다.
count=1
for i in {1..300}; do
echo "test$i" > ${count}_1.txt
echo "test$i" > ${count}_2.txt
echo "test$i" > ${count}_3.txt
echo "test$i" > ${count}_4.txt
((count++))
done
이는 1_1.txt부터 300_1.txt까지의 파일이 있다는 의미입니다.