post by yamamoto | 0 | 488 views

awk で awk を作る!

例えば、201404-201406 の DPC EFファイルがありました。

これらのファイルの先頭に年月(YYYYMM)と tab を追加したい場合は、下記の awkでいけます。

しかし、ファイルが多い場合、上記のコマンドを手入力するのは間違いやすいし、大変労力が要る作業になります。
もちろん、Excelを使えば、201404のところを列にして、マウスポインターで引っ張ると201409列まで作って、
後はできた内容をテキストエディタへコピーして、tab を space に置換えすれば、できないことはありません。
というか、いままで良くExcelの方法でやって来ました。

では、awk ならどうなるかというと下記の一行コマンドで上記6行のコマンドを作り出せます。簡単でしょう!!!

簡単に説明しましょう。
まず ls -l して、ファイルの一覧を出力します。すると9番目のカラム($9、OSによって異なる場合もある)はファイル名になります。
ファイル名から substr関数で 15文字目から4文字を取得します。
後は、\047でシングルクォーテーションすれば、完成です。
(ダブルクォーテーションは \" でエスケープします)

Comments are closed.