端末を使用してファイルを複数回コピーし、.txt ファイルの内容に応じてファイルの名前を変更します。

端末を使用してファイルを複数回コピーし、.txt ファイルの内容に応じてファイルの名前を変更します。

私のフォルダにtemplate.inddというファイルがあります。同じフォルダにこのファイルの複数のコピー(何百もの)を作成し、各コピーの名前をテキストファイルに含まれる名前に変更したいと思います。テキストファイルの名前はランダムで連続しておらず、スペースで区切られます。

私はMac OSXバージョン10.6.8で端末を使用しています。

これを行う方法はありますか?

答え1

xargs解決策

グヌスラム:

xargs -a file.txt -n 1 cp template.indd

Macで(@ Stéphane Chazelasに感謝します)

xargs -n 1 < file.txt cp template.indd

説明する

  • -a--arg-file):ファイルから項目を読み取る(GNU Bashのみ)
  • <GNU以外の代替-a
  • -n 1--max-args):実行ごとに1つの項目のみが追加されます。
  • cp template.indd:command xargs は実行時にエントリを追加します。

答え2

以下を試してくださいfile.txt。ファイル名を含むファイルはどこにありますか?

for file in $(cat file.txt);do cp template.indd "${file}";done

関連情報