定型の情報がたくさんあって、それを一覧にする仕事ってありますよね。

FAQとか、素材の情報とかそういう類のものを素早くHTMLにする仕事術(俺なら)をご紹介。

次のようなファイルが100個あるときの対処法です。

 作業の流れ

perl で置換して ls でファイル一覧をとって catで1個のファイルに連結 

 

原稿は1個づつ異なるテキストファイルが送信される。内容は次のような感じ。

【タイトル情報】
説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文
説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文
説明文説明文説明文説明文説明文説明文説明文

こんなファイルが100個ほどあって、1個のHTMLにまとめなければならない。
ちなみに仕上がりは次のようなHTMLを目指している。

<dt>【タイトル情報】<dt>
<dd>
説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文
説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文
説明文説明文説明文説明文説明文説明文説明文</dd>

perlで全ファイルを置換

まずは、perlのワンライナーで置換します。

perl -p -i -e 's/検索文字列/置換文字列/g' 対象ファイル名

これでディレクトリ内のファイルの中の文字列を一気に全部置換できます。

 

perl -p -i -e 's/【/<\/dd>【/g' *.txt
perl -p -i -e 's/】/<\/dt>/g' *.txt

上の2行で全.txtファイルの中身を置換します

catコマンドでファイルを連結する

まずは、lsコマンドでファイル名のみの一覧を取得します

ls *.txt >dilename.txt

AAAA.txt
BBBB.txt
cccc.txt
続く

上図リストがfilename.txtの中身に出力されるのでそれをテキストエディタで開きます。

cat AAAA.txt BBBB.txt cccc.txt >output.html

catコマンドはファイルを連結することができる(windows)にはないコマンド、このコマンドが出来たらコピペなどしてシェルに入力。
エンターを押せばすべてのテキストファイルが1個のoutput.htmlに出力されているはずです。
このファイルをエディタでちょこちょこっと直せば、大量にdt・ddが記述されたhtmlファイルが完成します。

まとめ

配給された大量の定型テキストファイルを、perlで置換、lsの出力結果を編集、catコマンドにして実行することで短時間でHTMLを生成することが出来る。

ひとつづつファイルを開いてコピペすると時間がかかる仕事もコマンドを組み合わせればこのように時間を圧倒的に短縮できます。

ポイントはperlとシェルを使うところです。

どちらもwindowsにはなじみがないかもしれない。

しかし、使いこなすとちょっとした文字列を操作する作業がぐっと楽になります。

ネットにも山ほど情報があるので、暗記しなくてもその都度検索しても全然大丈夫です。

文字列の定型加工などの作業が多い方は、perlとシェルの勉強をしてみてはいかがだろうか?学習時間なんてすぐに元が取り返せるとおもいます。