質問

File1、File2、...、File99から呼び出されるファイルを作成する必要があります。

次を試してみましたが失敗しました

cat test > {File1 .. File99}

単語Fileのないコマンドは機能しませんでした。

役に立ちましたか?

解決

たった1つのコマンド:

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は数字と1文字を展開します。したがって、ブレース式は次のようになります。

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

サブストリング拡張句のコロンとダッシュの間にはスペースが必要です。 &quot; file01&quot;で開始する場合は、上記の範囲を1で開始できます。

または、先行ゼロを使用するはるかに簡潔な方法:

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

そしてこれとphyrex1anのテクニックを使用するには:

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

これにより、1つの追加ファイル&quot; file00&quot;が作成されます。 &quot; {2..3} {0..9}&quot;もできます。 &quot; file20&quot;の場合&quot; file39&quot;を使用しますが、1桁(2番目の範囲)を変更すると、シーケンスの一部がスキップされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top