문제
파일 1, file2에서 파일을 호출하는 파일을 만들어야합니다.
나는 다음과 같은 성공을 시도했다
cat test > {File1 .. File99}
단어 파일이없는 명령은 작동하지 않았습니다.
해결책
단 하나의 명령 :
touch File{1..99}
다른 팁
$ for i in {1..100}; do touch "File$i"; done
이것은 사용중인 쉘에 따라 다릅니다. 나는 당신이 bash를 사용하고 있다고 가정합니다.
에 따르면 http://www.gnu.org/software/bash/manual/bashref.html#brace-expansion, Bash는 숫자와 단일 문자를 확장합니다. 그래서 당신의 브레이스 표현은 다음과 같아야합니다.
File{1..99}
그러나 리디렉션 연산자 ">"가 여러 파일로 출력 할 수 있다고 생각하지 않습니다. 루프를 사용해야 할 수도 있습니다.
for output in File{1..99}
do
cat test > $output
done
또는 한 라이너로서 :
for output in File{1..99}; do cat test > $output; done
비 루핑 버전을 선호하는 경우 Tee를 사용할 수 있습니다.
cat test | tee File{1..99} > /dev/null
와 함께 ZSH (그와 함께 mult_ios) 당신은 할 수 있습니다 :)
% zsh -c 'print test > file{1..3}'
% head file*
==> file1 <==
test
==> file2 <==
test
==> file3 <==
test
파일이 올바르게 정렬되도록하려면 (File01, File02 ... File10 등) 다음을 수행하십시오.
for i in {0..10}; do i="0"$i; touch file${i: -2}; done
이것은 다음과 같습니다.
for i in {0..10}
do
i="0"$i
touch file${i: -2} # or cat file > file${i: -2}
done
기판 확장 조항에는 결장과 대시 사이에 공간이 있어야합니다. "File01"으로 시작하려면 위의 범위를 1로 시작할 수 있습니다.
또는 주요 0을 갖는 훨씬 간결한 방법 :
touch file{0..9}{0..9}
그리고 이것과 함께 Phyrex1an의 기술을 사용합니다.
cat test | tee File{0..9}{0..9} > /dev/null
이것은 하나의 추가 파일 "file00"을 만듭니다. "file39"를 통해 "file20"에 대해 "{2..3} {0..9}" "숫자 (두 번째 범위)를 변경하면 시퀀스의 일부가 건너 뛸 수 있습니다.