cgi-name <概要> cgi-name(USP) <名前> cgi-name : CGI POST メソッドで渡されるデータを name 形式に変換する <書式> Usage : cgi-name [-e<c>] [-s<c>] [-n<string>] <param_file> Option : [--template <html>] Version : Thu Apr 16 22:08:28 JST 2015 <説明> cgi-name は、WEB サーバーの CGI POST メソッドで受け渡されるデータを name 形式に変換します。 <例1> WEB サーバーより 'place=tokyo&country=japan' という文字列が渡される 場合、変数 値 という形式(name 形式)に加工されます。 $ echo 'place=tokyo&country=japan' | cgi-name > result $ cat result place tokyo country japan <例2> 改行(%0D%0A %0D %0A)は、"\n" に変換されます。 $ echo 'place=tokyo%0D%0Aosaka&country=japan' | cgi-name > result $ cat result place tokyo\nosaka country japan <例3> -s オプションで半角空白を指定文字に変換します。 $ echo 'place=tokyo osaka&country=japan' | cgi-name -s_ > result $ cat result place tokyo_osaka country japan <例4> -s オプションで半角空白を削除します。 $ echo 'place=tokyo osaka&country=japan' | cgi-name -s > result $ cat result place tokyoosaka country japan <例5> -e オプションにより、エスケープ(\付加)される文字を指定します。この 場合、文字 '\' (%5C) は '\\' となります。 -s オプションと組み合わせて使うと、'_' は '\_' に、'\' は '\\' に、 ' ' は '_' に変換され、完全なエスケープができます。 <例5~1> $ echo 'place=tokyo_osaka&country=japan' | cgi-name -e_ > result $ cat result place tokyo\_osaka country japan <例5~2> $ echo 'place=tokyo%5Cosaka&country=j_a_p_a_n' | cgi-name -e_ > result $ cat result place tokyo\\osaka country j\_a\_p\_a\_n <例5~3> $ echo 'place=tokyo osaka&country=j_a_p_a_n' | cgi-name -e_ -s_ > result $ cat result place tokyo_osaka country j\_a\_p\_a\_n <例6> -n オプションにより、返される文字列が空文字列の場合の置換文字列を指 定できます。 <例6~1> $ echo 'place=&country=japan' | cgi-name > result $ cat result place country japan <例6~2> $ echo 'place=&country=japan' | cgi-name -n somewhere > result $ cat result place somewhere country japan <例7> --template オプションにより指定した HTML テンプレートより、radio と checkbox の名称を取り出し、その名称でデータが出力されなければ、出力 をその名称で補完します。これは、radio や checkbox は選択しないで submit すると、値そのものが出力されません。何も選択しなかったという データを生成するためにこのオプションを使用します。 $ cat html <input type="radio" name="XXXX" value="A" /> <input type="radio" name="XXXX" value="B" /> <input type="radio" name="XXXX" value="C" /> <input type="checkbox" name="YYYY" value="a" /> <input type="checkbox" name="YYYY" value="b" /> <input type="checkbox" name="YYYY" value="c" /> $ echo 'XXXX=abcd' | cgi-name -n_ --template html > result $ cat result XXXX abcd YYYY _ YYYY _ YYYY _ <例8> さらに、radio checkbox が html テンプレートの mojihame -l コマンド対 象部分にあっても、タグ名_%数字を認識して、選択値が無いときでもタグ名 を出力します。 $ cat html <!-- MOJIHAME --> <input type="radio" name="X_%1" value="%2" /> <input type="checkbox" name="Y_%1" value="%2" /> <!-- MOJIHAME --> $ echo 'X_10=abcd' | cgi-name -n_ --template html > result $ cat result X_10 abcd Y _ <備考> -d 旧オプション(現 -s オプション)は保証されません。 -i 旧オプション(現 -n オプション)は保証されません。