2010年6月28日月曜日

the one true awk(オリジナルAWK)の実行オプション一覧 - AWK

AWKプログラムを動かす
the one true awk(updated May 1, 2007)のWindows版で確認しました。

**** オリジナルawkの書式
--------
awk [オプション群] ["AWKプログラム"] [入力ファイル名群]
--------

o オプション群 -- 下の通りです。複数のオプションを並べる事も出来ます。
o AWKプログラム -- この他に、-f オプションを使ってAWKプログラムを指定する方法もあります。
   + Windowsの場合は、「"」(= 二重引用符)で括ります。
o 入力ファイル名群 -- AWKプログラムが読み込むファイル名です。複数並べて書くと一度に全部処理します。(ファイル名の間は、半角空白文字で区切ります)

o Windows版の実行ファイルは、awk95.exeです。


**** オプション一覧
オプション説明
-dデバッグモード。入力情報の解析結果なども一緒に出力します。
-f ファイル名AWKプログラムをファイルから読み込みます。
-F 区切り文字1行を$1、$2などに分割する時の区切り文字を指定します。
-Fと区切り文字の間は、詰めても大丈夫です。
-F t は、\t = タブ文字を指定した時と同じです。
-safeセーフモード。危険を伴う操作を見つけたら実行を中止して、警告を出します。例えば、
system関数の使用
コマンド実行結果のgetline
print文をリダイレクト = 出力ファイルを指定
-v 変数名=値変数の値を与えます。例 -v var1=1
2つ書く時 -v var1=aaa -v var2=bbb
-versionAWKのバージョンを表示します。
--最後のオプションとして付ける事が出来ます。何もせず、次の指定を読みます。
途中に入れると、オプションの解析を打ち切って終了しますので、ご注意下さい。
--version-versionと同じです。AWKのバージョンを表示します。


**** メモ
o Windows向けにAWKプログラムを書く時、コマンド実行の括り文字は、「`」(= 逆引用符 = バッククォート)ではなくて、「"」(= 二重引用符)です。
   + `dir` では動きませんでした。"dir"と書きます。

==
関連ページ:
    ▼AWKプログラムを動かす
    ▼AWK
    ▼制作メモ
    > AWKを実行する時に、プログラムファイルを複数指定する
    AWKプログラム実行時に変数を設定する
    AWKで入力ファイルの指定を不要にする
    Windows版AWKの配布元一覧(awk, mawk, Gawk)
(2011年5月23日訂正。記号の呼び方。「`」は逆引用符)

2010年6月27日日曜日

全ての記事の最初や最後に、決まり文句や固定リンクを追加する方法 - Blogger

Bloggerブログの見栄えを変更する
全ての記事の最初や最後に決まり文句を入れたい時は、テンプレートを変更する方法があります。後で変更する事も、簡単に出来ます。

但し、テンプレートデザイナーを使うと、最初からやり直しになるかもしれません。この方法を使う時は、デザインが完全になってから行う事をおすすめします。


**** 手順
o テンプレートを編集する画面を開きます。
   + 手順は「Blogger をCSSカスタマイズする方法」の2番(徹底的にカスタマイズする方法)です。
o 念の為、テンプレートをバックアップします。
o 入力欄の右上にある、「ウィジェットのテンプレートを展開」にチェックを入れます。
o 「<data:post.body/>」が書かれている行を見つけて、その前後辺りに文字等を追加します。
   + 具体的な方法は、この下にある「変更の例」をご覧下さい。
o 変更が終わりましたら
   + 「プレビュー」ボタンを押して、トップページを確認。
   + 「テンプレートを保存」ボタンを押して、他のページの内容も確認します。


**** 変更の例
変更前(= ここでは、左の空白を詰めて表示しています。)
----------------
<div class='post-body entry-content'>
  <data:post.body/>
  <div style='clear: both;'/> <!-- clear for photos floats -->
</div>
----------------

o 変更後の例1。文の最初に決まり文句を入れて、改行します。
----------------
<div class='post-body entry-content'>
タイが曲がっていましてよ。<br />
  <data:post.body/>
  <div style='clear: both;'/> <!-- clear for photos floats -->
</div>
----------------

o 変更後の例2。記事が単独表示された時だけ、下に、「この頁の上に戻る」リンクを入れます。
----------------
<div class='post-body entry-content'>
  <data:post.body/>
  <div style='clear: both;'/> <!-- clear for photos floats -->
  <b:if cond='data:blog.pageType == &quot;item&quot;'>
    <div class='xDataEnd'><a href='#' rel='nofollow'>↑この頁の上に戻る</a></div>
  </b:if>
</div>
----------------
o 後ろに追加する場合、clear: both; の行の後ろに入れる事をおすすめします。
   + clear: both;は、CSSの、位置に関する特殊設定を無効にする命令です。
o b:ifタグは、Bloggerの専用タグです。この例のように、特定ページの時だけ表示させる事が出来ます。
o rel='nofollow'はお好みで。検索エンジンに「このリンクは意味が無いよ」と伝えます。
o classタグを指定しておくと、CSSを使って、見栄えを大幅に変える事が出来ます。
----------------
.xDataEnd { text-align: right; } /* 右寄せしたくなった時 */
----------------


==
関連ページ:
    ▼Bloggerブログの見栄えを変更する
    ▼Blogger
    ▼制作メモ
    > BloggerのHTMLカスタマイズに関する公式情報の在り処
    Blogger in Draft = Bloggerの最新機能を試用する
    HTMLの編集やHTMLモードで入力する時に、変換が必要になる記号

2010年6月25日金曜日

strftimeの書式一覧。 Gawk on Windows編 - AWK

AWKのstrftime関数
互換性の欄は、他のWindows用AWK処理系(Gawk for Windows 3.1.6 / mawk MBCS (32bit版) 1.3.3)で確認しました。「△ = 表現が異なる処理系がある」「× = サポートしていない処理系がある」です。

サポートしている strftime 書式(機能別)
サポートしている strftime 書式(ABC順)
書式調査資料

Gawk on Windows 3.1.7がサポートしている strftime 書式(機能別)
書式(機能別)実行結果の例互換性説明
-- %文字 --
%%[%]パーセント記号
-- 年、月、日 --
%Y[2001]西暦年
%m[02]月(01-12)
%d[03]日(01-31)
%y[01]西暦年の下2桁(00-99)
%B[2月]月名
%b[2]月名の省略形
%j[034]年の初めから数えた日数(001-366)
-- 時、分、秒 --
%H[04]時。24時間表記(00-23)
%M[05]分(00-59)
%S[06]秒(00-59)。閏秒を表示するシステムの場合は61秒までの可能性
%I[04]時。12時間表記(01-12)
%p[午前]午前/午後の大文字
-- 曜日、週番号 --
%w[6]曜日番号。日曜日が0(0-6)
%A[土曜日]曜日
%a[土]曜日の省略形
%U[04]週番号。その年の最初の日曜日から1週目。最初の日曜日の前日までは00。(00-53)
%W[05]週番号。その年の最初の月曜日から1週目。最初の月曜日の前日までは00。(00-53)
-- タイムゾーン --
%Z[東京 (標準時)]×タイムゾーン。名前または省略形。不明な場合は空です。
-- 組み合わせ --
%x[2001/02/03]一般的な年月日表記
%X[4:05:06]一般的な時刻表記。年月日は含みません。デジタル時計では、この表記(分秒だけ前ゼロ)を良く見かけます。
%c[2001/02/03 4:05:06]一般的な年月日と時刻

Gawk on Windows 3.1.7がサポートしている strftime 書式(ABC順)
書式(ABC順)実行結果の例互換性説明
%A[土曜日]曜日
%a[土]曜日の省略形
%B[2月]月名
%b[2]月名の省略形
%c[2001/02/03 4:05:06]一般的な年月日と時刻
%d[03]日(01-31)
%H[04]時。24時間表記(00-23)
%I[04]時。12時間表記(01-12)
%j[034]年の初めから数えた日数(001-366)
%M[05]分(00-59)
%m[02]月(01-12)
%p[午前]午前/午後の大文字
%S[06]秒(00-59)。閏秒を表示するシステムの場合は61秒までの可能性
%U[04]週番号。その年の最初の日曜日から1週目。最初の日曜日の前日までは00。(00-53)
%W[05]週番号。その年の最初の月曜日から1週目。最初の月曜日の前日までは00。(00-53)
%w[6]曜日番号。日曜日が0(0-6)
%X[4:05:06]一般的な時刻表記。年月日は含みません。デジタル時計では、この表記(分秒だけ前ゼロ)を良く見かけます。
%x[2001/02/03]一般的な年月日表記
%Y[2001]西暦年
%y[01]西暦年の下2桁(00-99)
%Z[東京 (標準時)]×タイムゾーン。名前または省略形。不明な場合は空です。
%%[%]パーセント記号

# --------------------------------------------------------------
# 基礎資料。strftime書式調査テスト結果
#
テストに使った書式は、各awk処理系の説明書の他、C言語の同名関数で見かけた書式も混ぜました。
◎の意味は、「日本語対応として望ましい」です。
色が付いている所は、未サポート、もしくは正しいとされる表記が複数あって、互換性に乏しい所です。


調査したAWK処理系 = Gawk on Windows 3.1.7 (2009年11月24日版)
OS = Windows XP SP3 日本語版
調査に使った関数 = strftime
環境変数の追加設定無し = TZやLC_系環境変数の指定無し

# -------------------------------
# テスト1。2001年2月3日4時5分6秒 UTC+9
# -------------------------------
書式(ABC順)実行結果判定説明
%A[土曜日]曜日(例。Wednesday)
%a[土]曜日の省略形(例。Wed)
%B[2月]月名(例。August)
%b[2]月名の省略形(例。Aug)
%C[]×世紀。西暦年から下位2桁を除去
%c[2001/02/03 4:05:06]一般的な年月日と時刻
%D[]×米国で一般的な年月日(%m/%d/%y)
%d[03]日(01-31)
%e[]×月。1桁の時は左に半角空白( 1-31)
%F[]×年月日。ISO 8601形式。%Y-%m-%d
%G[]×年。ISO 8601週単位表記。年末年始で、%Yと異なります。
%g[]×年。ISO 8601週単位表記の下2桁(00-99)
%H[04]時。24時間表記(00-23)
%h[]×%bと同じです。月名の省略形(例。Aug)
%I[04]時。12時間表記(01-12)
%j[034]年の初めから数えた日数(001-366)
%k[]×時。24時間表記で、1桁の時は左に半角空白( 0-23)
%l[]×時。12時間表記で、1桁の時は左に半角空白( 0-12)
%M[05]分(00-59)
%m[02]月(01-12)
%n[]×改行
%P[]×午前/午後の小文字
%p[午前]午前/午後の大文字
%R[]×24時間表記の時分(%H:%M)
%r[]×12時間表記の時分秒+午前午後(%I:%M:%S %p)
%S[06]秒(00-59)。閏秒を表示するシステムの場合は61秒までの可能性
%s[]×基準時刻からの秒数。1970年1月1日0時(UTC)から
%T[]×24 時間表記の時分秒 (%H:%M:%S)
%t[]×タブ文字
%U[04]週番号。その年の最初の日曜日から1週目。最初の日曜日の前日までは00。(00-53)
%u[]×曜日番号。月曜日が1(1-7)
%W[05]週番号。その年の最初の月曜日から1週目。最初の月曜日の前日までは00。(00-53)
%w[6]曜日番号。日曜日が0(0-6)
%X[4:05:06]一般的な時刻表記。年月日は含みません。デジタル時計では、この表記(分秒だけ前ゼロ)を良く見かけます。
%x[2001/02/03]一般的な年月日表記
%V[]×週番号。ISO 8601週単位表記。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。
%v[]×VMSフォーマットの日付。09-MAR-2039
%Y[2001]西暦年
%y[01]西暦年の下2桁(00-99)
%Z[東京 (標準時)]タイムゾーン。名前または省略形。不明な場合は空です。
%z[東京 (標準時)]×タイムゾーン。+HHMM形式 = RFC 822/RFC 1036(例 +0900)。不明な場合は空です。
%%[%]パーセント記号
%EC[C]×拡張表現。元号(無い時は%Cと同じです)
%Ec[c]×拡張表現。地域固有の日付時刻表現(無い時は%cと同じです)
%EX[X]×拡張表現。地域固有の時刻表現(無い時は%Xと同じです)
%Ex[x]×拡張表現。地域固有の日付表現(無い時は%xと同じです)
%EY[Y]×拡張表現。元号付きの年、完全表記。平成元年のような、こだわり表記が出来ます。(無い時は%Yと同じです)
%Ey[y]×拡張表現。元号で数えた時の、年の数字(無い時は%yと同じです)
%Od[d]×拡張表現。地域固有の日表現。最大桁数になるまで、左を0で埋めます。(無い時は%dと同じです)
%Oe[e]×拡張表現。地域固有の日表現。最大桁数になるまで、左を半角空白で埋めます。(無い時は%eと同じです)
%OH[H]×拡張表現。地域固有の時表現(24時間)(無い時は%Hと同じです)
%OI[I]×拡張表現。地域固有の時表現(12時間)(無い時は%Iと同じです)
%OM[M]×拡張表現。地域固有の分表現(無い時は%Mと同じです)
%Om[m]×拡張表現。地域固有の月表現(無い時は%mと同じです)
%OS[S]×拡張表現。地域固有の秒表現(無い時は%Sと同じです)
%OU[U]×拡張表現。地域固有の週番号表現。その年の最初の日曜日から1週目。その前日までは00相当(無い時は%Uと同じです)
%Ou[u]×拡張表現。地域固有の曜日番号表現。月曜日が1で、7まで(無い時は%uと同じです)
%OV[V]×拡張表現。地域固有の週番号表現。ISO 8601の規定通り。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。(無い時は%Vと同じです)
%OW[W]×拡張表現。地域固有の週番号表現。その年の最初の月曜日から1週目。その前日までは00相当(無い時は%Wと同じです)
%Ow[w]×拡張表現。地域固有の曜日番号表現。日曜日が0で、6まで(無い時は%wと同じです)
%Oy[y]×拡張表現。地域固有の西暦年下2桁表現(無い時は%yと同じです)

# -------------------------------
# テスト2。2010年1月1日23時59分59秒 UTC+9
# -------------------------------
書式(ABC順)実行結果判定説明
%A[金曜日]曜日(例。Wednesday)
%a[金]曜日の省略形(例。Wed)
%B[1月]月名(例。August)
%b[1]月名の省略形(例。Aug)
%C[]×世紀。西暦年から下位2桁を除去
%c[2010/01/01 23:59:59]一般的な年月日と時刻
%D[]×米国で一般的な年月日(%m/%d/%y)
%d[01]日(01-31)
%e[]×月。1桁の時は左に半角空白( 1-31)
%F[]×年月日。ISO 8601形式。%Y-%m-%d
%G[]×年。ISO 8601週単位表記。年末年始で、%Yと異なります。
%g[]×年。ISO 8601週単位表記の下2桁(00-99)
%H[23]時。24時間表記(00-23)
%h[]×%bと同じです。月名の省略形(例。Aug)
%I[11]時。12時間表記(01-12)
%j[001]年の初めから数えた日数(001-366)
%k[]×時。24時間表記で、1桁の時は左に半角空白( 0-23)
%l[]×時。12時間表記で、1桁の時は左に半角空白( 0-12)
%M[59]分(00-59)
%m[01]月(01-12)
%n[]×改行
%P[]×午前/午後の小文字
%p[午後]午前/午後の大文字
%R[]×24時間表記の時分(%H:%M)
%r[]×12時間表記の時分秒+午前午後(%I:%M:%S %p)
%S[59]秒(00-59)。閏秒を表示するシステムの場合は61秒までの可能性
%s[]×基準時刻からの秒数。1970年1月1日0時(UTC)から
%T[]×24 時間表記の時分秒 (%H:%M:%S)
%t[]×タブ文字
%U[00]週番号。その年の最初の日曜日から1週目。最初の日曜日の前日までは00。(00-53)
%u[]×曜日番号。月曜日が1(1-7)
%W[00]週番号。その年の最初の月曜日から1週目。最初の月曜日の前日までは00。(00-53)
%w[5]曜日番号。日曜日が0(0-6)
%X[23:59:59]一般的な時刻表記。年月日は含みません。
%x[2010/01/01]一般的な年月日表記
%V[]×週番号。ISO 8601週単位表記。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。
%v[]×VMSフォーマットの日付。09-MAR-2039
%Y[2010]西暦年
%y[10]西暦年の下2桁(00-99)
%Z[東京 (標準時)]タイムゾーン。名前または省略形。不明な場合は空です。
%z[東京 (標準時)]×タイムゾーン。+HHMM形式 = RFC 822/RFC 1036(例 +0900)。不明な場合は空です。
%%[%]パーセント記号
%EC[C]×拡張表現。元号(無い時は%Cと同じです)
%Ec[c]×拡張表現。地域固有の日付時刻表現(無い時は%cと同じです)
%EX[X]×拡張表現。地域固有の時刻表現(無い時は%Xと同じです)
%Ex[x]×拡張表現。地域固有の日付表現(無い時は%xと同じです)
%EY[Y]×拡張表現。元号付きの年、完全表記。平成元年のような、こだわり表記が出来ます。(無い時は%Yと同じです)
%Ey[y]×拡張表現。元号で数えた時の、年の数字(無い時は%yと同じです)
%Od[d]×拡張表現。地域固有の日表現。最大桁数になるまで、左を0で埋めます。(無い時は%dと同じです)
%Oe[e]×拡張表現。地域固有の日表現。最大桁数になるまで、左を半角空白で埋めます。(無い時は%eと同じです)
%OH[H]×拡張表現。地域固有の時表現(24時間)(無い時は%Hと同じです)
%OI[I]×拡張表現。地域固有の時表現(12時間)(無い時は%Iと同じです)
%OM[M]×拡張表現。地域固有の分表現(無い時は%Mと同じです)
%Om[m]×拡張表現。地域固有の月表現(無い時は%mと同じです)
%OS[S]×拡張表現。地域固有の秒表現(無い時は%Sと同じです)
%OU[U]×拡張表現。地域固有の週番号表現。その年の最初の日曜日から1週目。その前日までは00相当(無い時は%Uと同じです)
%Ou[u]×拡張表現。地域固有の曜日番号表現。月曜日が1で、7まで(無い時は%uと同じです)
%OV[V]×拡張表現。地域固有の週番号表現。ISO 8601の規定通り。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。(無い時は%Vと同じです)
%OW[W]×拡張表現。地域固有の週番号表現。その年の最初の月曜日から1週目。その前日までは00相当(無い時は%Wと同じです)
%Ow[w]×拡張表現。地域固有の曜日番号表現。日曜日が0で、6まで(無い時は%wと同じです)
%Oy[y]×拡張表現。地域固有の西暦年下2桁表現(無い時は%yと同じです)


==
関連ページ:
    ▼strftime - 時刻を文字列に変換する
    ▼AWKの時刻取得機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    ▼目次
    > strftimeの書式一覧。 Gawk for Windows編
    strftimeの書式一覧。 mawk MBCS (32bit版)編
(2010年6月26日追加。書式の説明文と誤記訂正)