Question

Je dois créer des fichiers appelés à partir de Fichier1, Fichier2, ... dans Fichier99.

J'ai essayé ce qui suit sans succès

cat test > {File1 .. File99}

La commande sans le mot Fichier n'a pas fonctionné.

Était-ce utile?

La solution

Une seule commande:

touch File{1..99}

Autres conseils

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

Cela dépendra du shell que vous utilisez. Je suppose que vous utilisez Bash.

Selon http://www.gnu.org /software/bash/manual/bashref.html#Brace-Expansion , Bash développera les chiffres et les caractères uniques. Donc, votre expression d'accolade devrait être:

File{1..99}

Mais je ne pense pas que l'opérateur de redirection " > " peut générer plusieurs fichiers. Vous devrez peut-être utiliser une boucle:

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

Ou en une ligne:

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

Si vous préférez une version sans boucle, vous pouvez utiliser tee

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

Avec zsh (avec son mult_ios ), vous pouvez:)

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

==> file2 <==
test

==> file3 <==
test

Si vous souhaitez que les fichiers soient correctement triés (fichier01, fichier02 ... fichier10, etc.), procédez comme suit:

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

Qui est identique à:

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

Il doit y avoir un espace entre les deux points et le tiret dans la clause d’extension de la sous-chaîne. Vous pouvez commencer les plages ci-dessus par 1 si vous souhaitez commencer par "file01".

Ou bien, une façon beaucoup plus succincte d'avoir des zéros non significatifs:

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

et d'utiliser la technique de phyrex1an avec celle-ci:

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

Ceci crée un fichier supplémentaire "file00". Vous pouvez également faire & {{2..3} {0..9} " pour " fichier20 " via "file39", mais le fait de changer le chiffre des unités (la deuxième plage) ferait sauter certaines parties de la séquence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top