#!/usr/bin/awk -f
BEGIN {
    s="#!/usr/bin/awk -f\nBEGIN {\n    s=%s;\n    t=s;\n    gsub(\"\\\\\\\\\", \"\\\\\\\\\", t);\n    gsub(\"\\\"\", \"\\\\\\\"\", t);\n    gsub(\"\\n\", \"\\\\n\", t);\n    t=\"\\\"\" t \"\\\"\";\n    printf(s,t);\n}\n";
    t=s;
    gsub("\\\\", "\\\\", t);
    gsub("\"", "\\\"", t);
    gsub("\n", "\\n", t);
    t="\"" t "\"";
    printf(s,t);
}
  • quineは書くこと/書けることが無い時の暇潰しに良いと気付きました
  • gsubがキャプチャできないの知りませんでした