dayslash

提供: Personal Tukubai for Academic
ナビゲーションに移動 検索に移動

名前

dayslash : 日付時刻フォーマット変換

書式

使い方とオプション

Usage

dayslash <f1> <f2>... <file>
dayslash -d <string>

Option

--input <format>
--output <format>
--through <string>

説明

出力フォーマットと入力フォーマットの指定について説明します。

出力フォーマット指定

–output <format> で指定した形式にフィールド <f> の値を変換します。

<format> には以下を指定できます。(()内は例)

yyyy : 年 (2013) 
mm   : 月 (09)  <-- 2桁前0埋め
m    : 月 (9)
mmm  : 月 (Sep) <-- 英表記
dd   : 日 (04)  <-- 2桁前0埋め
d    : 日 (4) 
HH   : 時 (08) <-- 2桁前0埋め
H    : 時 (8) 
MM   : 分 (09) <-- 2桁前0埋め
M    : 分 (9) 
SS   : 秒 (05) <-- 2桁前0埋め
S    : 秒 (5) 
sss  : ミリ秒(012) <-- 3桁前0埋め
s    : ミリ秒(12)

'HH:MM_dd/mm/yyyy'   (15:14_03/12/2014)
'd日(m月)yyyy年'     (4日(9月)1966年)
'mmmdd/yyyy'         (Sep04/2013)

入力の形式は –input <format> で指定しますが、 –input を指定しない場合の指定タグの形式は –ouput <format> で指定した変数の年月日時分秒ミリ秒の順の固定桁の数字であるとみなします。

'HH:MM_dd/mm/yyyy' の元データは 201412031514
'd日(m月)yyyy年'   の元データは 19660904

上記に当てはまらない場合は入力の桁数から以下のように看做します。

6桁      HHMMSS
8桁      yyyymmdd
14桁     yyyymmddHHMMSS
17桁     yyyymmddHHMMSSsss

-d を指定した時はダイレクトモードとなり、引数 <string> を変換します。

出力フォーマット指定例

$ echo 20120304 | dayslash --output yyyy/mm/dd 1
2012/03/04

$ echo 20120304 20130118 | dayslash --output yyyy/mm/dd 1 2
2012/03/04 2013/01/18

$ dayslash -d --output yyyy/mm/dd 20120304
2012/03/04

$ echo 050607 | dayslash --output H時M分S秒 1
5時6分7秒

$ echo 20111201235958 | dayslash --output m/d 1
12/1

$ echo - | dayslash --through - --output yyyy/mm/dd 1

$ echo 20111201235958002 | dayslash --output yyyy/mm/dd_HH:MM:SS.sss 1
2011/12/01_23:59:58.002

$ echo 20111201235958002 | dayslash --output yyyy/mm/dd_HH:MM:SS.s 1
2011/12/01_23:59:58.2

入力フォーマット

入力フィールドから –input <format> に従って年月日時分秒ミリ秒を取り出し、 年(4)月(2)日(2)時(2)分(2)秒(2)ミリ秒(3)の 順で固定桁の一つの値に変換します。 –output 指定がある時は指定に従います。

<format> 中の文字 ‘.’ は任意の1文字を表します。

入力フォーマット指定例

$ echo 2012/03/04 | dayslash --input yyyy/mm/dd 1
20120304

$ echo 5時6分7秒 | dayslash --input H時M分S秒 1
050607

$ echo 2011年12月1日_23:59:10 | dayslash --input yyyy年m月d日_HH:MM:SS 1
20111201235910

$ echo 2011/12/1_23:59:10.0 | dayslash --input yyyy/m/d_HH:MM:SS.s 1  
20111201235910000

$ echo '13/4(Thu)/2012' | dayslash --input 'd/m(...)/yyyy' 1
20120413

$ echo Apr13/2013 | dayslash --input 'mmmdd/yyyy' 1
20130413

備考

年月日時分秒ミリ秒の正当性は判断しません。桁数を満たす数字であることのみ検査します。またフォーマットと異なる入力文字列はエラーとなります。

–through オプションで指定した <string> の文字列についてはエラーとせずにそのまま出力します。デフォールトは ’_’ です。

$ echo - | dayslash --through - --input yyyy/mm/dd_HH:MM:SS 1  
-

旧形式もサポートします。

dayslash yyyy/mm/dd 1    (--output yyyy/mm/dd と同じ)

dayslash -r yyyy/mm/dd 1 (--input  yyyy/mm/dd と同じ)

Version and Edition

Version : Thu Jul 16 21:41:21 JST 2020

Edition 2


© 2021 Universal Shell Programming Laboratory site