サイト内検索:
dayslash : 日付時刻フォーマット変換
使い方とオプション
dayslash <f1> <f2>... <file>
dayslash -d <string>
--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 : Thu Jul 16 21:41:21 JST 2020
Edition 2
© 2021 Universal Shell Programming Laboratory site