みなさん < こん??は でび です
表題の通りなのですが、
「WindowsでCMD窓使っている限りはダメ。以上。」
がFAでしょうか?
var << EOF
でなくても、改行を含む外部ファイル全体を丸ごと
ファイル名決め打ちで(ARGVはできれば使いたくない
です。)変数にインクルードするのでも構いません。
以下のスクリプトで
★\n\
としているのは、実は
★\n
だけが意図なのですが、それだとvar=""の""部分が
ぶった切れになってしまうせいか、変数の範囲を
確定してくれないらしいためです。
BEGIN{
# FS="\n"
# OFS="\n"
# RS=""
# ORS=""
var="\n\
★\n\
★\n\
★\n\
★\n\
★\n\
★\n\
" #←ここは変更しちゃダメ!
# RSやORSをいじっても変数定義でエスケープなしの改行はダメみたい。
# var << EOF
# ★
# ★
# EOF
}
{
if($0~/た。/){
printf("%sような気がするナリよ。\n" var , $0);
}
else if($0~/る。/){
printf("%sかもしれなぁ〜い。\n", $0);
}
}
-----------------------------------------
以下は、関連した別の話題。Bruce.さん宛。
gawk 3.1.7(windows special Nov 24 2009) Bruce.版
では以下のコードの場合(subとかgsubを使っていないのは
特に意味はありませんが)、UTF8で動かした場合だけ、
意図した通りに動くようです。
S-JISで動かすと元文書が短い(青空文庫にある
「読書子に寄す」)場合は、出力が0バイトの
ファイルとなる場合があります。
元文書が一定規模(7KB)のファイルの場合は
正常出力される場合とがあるようです。
EUCで動かすと、どうやら元文書のサイズにかかわらず、
var部の改行の出力がちょっと変になるようです。
BEGIN部でのセパレータの変更の有無は関係ないようです。
改行は CRLF_TEST.awk も *.TXTもすべてCR+LFとし、
CRLF_TEST.awkも、当然、それぞれの文字コードに
合わせて保存して試しました。
gawk.exe --ctype=SJIS -f CRLF_TEST.awk SJIS.TXT > OutSJIS.TXT
gawk.exe -W ctype=SJIS -f CRLF_TEST.awk SJIS.TXT > OutSJIS.TXT
gawk.exe --ctype=UTF8 -f CRLF_TEST.awk UTF8.TXT > OutUTF8.TXT
gawk.exe -W ctype=UTF8 -f CRLF_TEST.awk UTF8.TXT > OutUTF8.TXT
gawk.exe --ctype=EUC -f CRLF_TEST.awk EUC.TXT > OutEUC.TXT
gawk.exe -W ctype=EUC -f CRLF_TEST.awk EUC.TXT > OutEUC.TXT
でび http://davi.txt-nifty.com/1984/