awkの使い方2ーcsvファイルからの展開【文学・歴史資料のデジタル加工入門9】 (木越 治)
●検索結果を見やすく加工する
ただ、csv形式のデータはあまり見やすくない。これをawkで見やすく変形する、というのが今回のテーマである。そのために使うスクリプトがこれ(「csv2dsp.awk」)である。
======================================================
BEGIN { FS=”,” ; OFS=”\n” ; ORS=”\n\n” }
{ printf(“== %04d ========================\n”,NR)
print \
“氏 名 :”$2,
“文献名:”$3,
“掲載誌:”$4,
“巻 号:”$5,
“頁 数:”$7,
“発 表:”$8,
“備 考 :”$9
}
======================================================
結果は、
======================================================
== 0001 ========================
氏 名 :重友毅
文献名:「菊花の約」の原話
掲載誌:歴史と国文学
巻 号:5の5
頁 数:10
発 表:1931.11
備 考 :→『近世国文学考説』(昭和8年8月、積文館刊)・『重友毅著作集〈第4巻〉秋成の研究』(昭和46年5月、文理書院刊)
(中略)
== 0088 ========================
氏 名 :井上泰至
文献名:軽薄の人は読者なり―「菊花の約」を読む
掲載誌:文学研究
巻 号:86
頁 数:12
発 表:1998.03
備 考 :
======================================================
というふうになる。
このスクリプトでは、printfの行で、NRという組み込み変数(レコード数)を利用し、%04dすなわち四桁の整数で表示するようにさせている。ただし、これは必須ではない。データが幾つあるかわかれば便利だというだけで利用しているだけなので、前掲のスクリプトにならって、
======================================================
BEGIN { FS=”,” ; OFS=”\n” ; ORS=”\n\n” }
{
print “=========================================”
print “氏 名 :”$2
print “文献名:”$3
print “掲載誌:”$4
print “巻 号:”$5
print “頁 数:”$7
print “発 表:”$8
print “備 考 :”$9
}
======================================================
とすれば、そのデータがいくつめになるかということかはわからないが、見やすく変形するという目的にはかなっている(この結果は省略する)。
今回利用したスクリプトは、どれも他の人が使っているのを自分用に改造したものである。改造といっても、自分のデータにあわせてフィールド番号を入れ替えるとか、不要のフィールドを削除するとかである。
Excelは作成するときは便利だが、印刷するときとか、メモ的に一部を保存するとかはいろいろ工夫が必要である。そういうとき、awkの知識があると、小回りのきいた作業が可能になるのである。
1948年生まれ
1971年 金沢大学文学部国文学科卒業
1975年 東京大学大学院博士後期課程退学。
博士(文学)
金沢大学名誉教授、元上智大学教授
〔主な著作〕
『秋成論』(ペリカン社、1995年)
『秋成文学の生成』(共編、森話社、2008年)
『上田秋成研究事典』(共著、笠間書院、2016年)
『新編浮世草子怪談集』〔江戸怪談文芸名作選〕(校訂代表、国書刊行会、2016年)
『米国議会図書館蔵 日本古典籍目録』(共編、八木書店、2003年)
『講談と評弾―伝統話芸の比較研究―』(八木書店、2010年)