knowledge base

マークアップ/フロントエンドエンジニアのWEB制作における備忘録です。平日はWEB屋、休日は社会人劇団の主宰・劇作家をしています。

ファイル名一覧から新規ファイルを作成

例えば、以下のようなテキストファイル(filelist.txt)があるとします。

aaa.html
bbb.html
ccc.html
ddd.html
eee.html

このリストをもとに新規ファイルを作成するには、毎回無題の新規ファイルを作成しそのたびにリネームをするという非効率な作業が必要になりますが、 xargsというコマンドを利用することで短時間で解決することができます。

cat filelist.txt | xargs -n 1 touch

xargsコマンドの使い方は以下を参照ください。

itpro.nikkeibp.co.jp

今回のような使い方のほかに、特定のファイルを検索し、そのファイルに対してリネームや削除を行うなどといったケースでも利用されます。

また、上記の例ではシンプルに空のファイルを作成するのみですが、cpコマンドのように引数を複数とる場合は、「-Jオプション」または「-iオプション」を使用して任意の文字列に置換をします。

下記は、新規作成ではなくテンプレートファイル(__temp__.html)をコピーしつつ、そのファイル名をファイルリストから命名するコマンドになります。

このとき、ファイルリストから取得したファイル名は「%」という文字列に置換されています。

cat filelist.txt | xargs -n 1 -J% cp __temp__.html %