Pregunta

Necesito hacer archivos llamados desde File1, File2, ... a File99.

Intenté lo siguiente sin éxito

cat test > {File1 .. File99}

El comando sin la palabra Archivo no funcionó.

¿Fue útil?

Solución

Solo un comando:

touch File{1..99}

Otros consejos

$ for i in {1..100}; do touch "File$i"; done 

Esto dependerá del shell que esté utilizando. Supongo que estás usando Bash.

De acuerdo con http://www.gnu.org /software/bash/manual/bashref.html#Brace-Expansion , Bash expandirá dígitos y caracteres individuales. Por lo tanto, su expresión de llaves debería ser:

File{1..99}

Pero no creo que el operador de redirección " > " puede salir a múltiples archivos. Es posible que deba usar un bucle:

for output in File{1..99}
do
    cat test > $output
done

O como una línea:

for output in File{1..99}; do cat test > $output; done

Si prefiere una versión sin bucle, puede usar tee

cat test | tee File{1..99} > /dev/null

Con zsh (con sus mult_ios ) puedes :)

% zsh -c 'print test > file{1..3}' 
% head file*                      
==> file1 <==
test

==> file2 <==
test

==> file3 <==
test

Si desea que los archivos se ordenen correctamente (file01, file02 ... file10, etc.), haga lo siguiente:

for i in {0..10}; do i="0"$i; touch file${i: -2}; done

Que es lo mismo que:

for i in {0..10}
do
    i="0"$i
    touch file${i: -2} # or cat file > file${i: -2}
done

Debe haber un espacio entre los dos puntos y el guión en la cláusula de expansión de la subcadena. Puede comenzar los rangos anteriores con 1 si desea comenzar con " file01 " ;.

O, una forma mucho más sucinta de tener ceros a la izquierda:

touch file{0..9}{0..9}

y para usar la técnica de phyrex1an con esta:

cat test | tee File{0..9}{0..9} > /dev/null

Esto hace que un archivo adicional "file00". También puede hacer " {2..3} {0..9} " para " archivo20 " a través de " file39 " ;, pero cambiar el dígito de las unidades (el segundo rango) provocaría que se omitan partes de la secuencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top