Domanda

Devo creare file chiamati da File1, File2, ... a File99.

Ho provato quanto segue senza successo

cat test > {File1 .. File99}

Il comando senza la parola File non ha funzionato.

È stato utile?

Soluzione

Solo un comando:

touch File{1..99}

Altri suggerimenti

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

Questo dipenderà dalla shell che stai usando. Presumo che tu stia usando Bash.

Secondo http://www.gnu.org /software/bash/manual/bashref.html#Brace-Expansion , Bash espande cifre e caratteri singoli. Quindi la tua espressione di parentesi graffa dovrebbe essere:

File{1..99}

Ma non credo che l'operatore di reindirizzamento " > " può essere emesso su più file. Potrebbe essere necessario utilizzare un ciclo:

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

O come linea singola:

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

Se preferisci una versione non in loop, puoi usare tee

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

Con zsh (con le sue mult_ios ) puoi :)

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

==> file2 <==
test

==> file3 <==
test

Se si desidera che i file vengano ordinati correttamente (file01, file02 ... file10, ecc.), procedere come segue:

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

Che è lo stesso di:

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

Ci deve essere uno spazio tra i due punti e il trattino nella clausola di espansione della sottostringa. Puoi iniziare gli intervalli sopra con 1 se vuoi iniziare con " file01 " ;.

O, un modo molto più conciso di avere zeri iniziali:

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

e per usare la tecnica di phyrex1an con questa:

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

Questo rende un file extra " file00 " ;. Puoi anche fare " {2..3} {0..9} " per " file20 " tramite "file39", ma la modifica di una cifra (il secondo intervallo) comporterebbe il salto di parti della sequenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top