N
예를 들어 , 복사본을 만들고 a.txt
번호를 매기려면 a1.txt
, a2.txt
등 a3.txt
...
어떻게 이런 일을 간결하게 할 수 있습니까?
답변1
cp
그 자체로는 한 번에 하나의 복사본(단일 파일)만 만들지만 빠른 루프를 사용하면 그리 어렵지 않습니다.
for i in {1..10}; do cp a.txt a$i.txt; done
답변2
bash 변수에 N개의 값이 있다고 가정합니다.
for i in `seq 1 $N`; do cp a.txt a$i.txt; done
또는
for ((i=1;i<=$N;i++)); do cp a.txt a$i.txt; done
또는 Kevin의 답변에 표시된 루프를 사용하십시오.
답변3
사용된 솔루션은 복사본을 만들기 위해 cp
파일을 동시에 읽을 필요가 없기 때문에 다소 비효율적입니다 . 사용할 수 있습니다 :N
N
tee
cat a.txt | ( for i in `seq 1 $N`; do echo a"$i".txt; done | xargs tee )
답변4
좀 더 펑키한 것을 원한다면 다음과 같이 할 수 있습니다
for t in $(seq --format="funky-%03.0f-numbered.txt" 25 3 40); do cp orig $t; done
.