大量のファイルをExcelの一つのシートにまとめて渡すという狂気に満ちたことをされた時の切り出し手順。とりあえずなメモ。
Excelからテキストへの変換
渡されたのは A 列にファイル名、B 列にファイル内容のテキスト、というシート。
このシートをまるごとテキストファイルにコピーして、
-
\r\n
を ■ に置換 -
\n
を □ に置換 - ■ を
\r\n
に置換 - \t 周囲のダブルクォートの削除
という処理を行った。
これで、1行につき 1ファイル のテキストにできた。
幸いにして、ルールを外れる行はなかったのでこれで済んだ。
ファイルへの切り出し
以下のスクリプトを用いてawkで切り出した。
#!/usr/bin/awk -f
BEGIN { FIELDWIDTHS = "28 1024" } #編集中の見やすさ的に固定長にした名残
NR {
fname=$1; #ファイル名。
sub(/[ \t]+$/,"",fname); #行末空白の削除
#print "1:"fname ":";
#print "2:"$2;
str=$2; #str はファイル内容。
gsub(/□ +/,"\n ", str); #改行文字をもとにもどす。
gsub(/□/,"\n", str);
#print str;
print str > fname #ファイルの出力
}
終わり。