:4例で日付形式 - 例
Sunday, 1^st January 2016
(上付きst
、nd
、rd
またはth
とを)。
上付き文字はどのように受信されますか?
ご協力いただき、ありがとうございます。
:4例で日付形式 - 例
Sunday, 1^st January 2016
(上付きst
、nd
、rd
またはth
とを)。
上付き文字はどのように受信されますか?
ご協力いただき、ありがとうございます。
私はこれが役に立てば幸い:
#!/bin/bash
# get the day of the month to decide which postfix should be used
dayOfMonth=$(date +%d)
# Choose postfix
case "$dayOfMonth" in
1)
postfix="st"
;;
2)
postfix="nd"
;;
3)
postfix="rd"
;;
*)
postfix="th"
;;
esac
# Generate date string
myDate=$(date +%A,\%d\^$postfix\ %B\ %Y)
echo $myDate
説明:
マインドコメント。
dateコマンドの出力は、コマンドラインから「+」で始まる文字列でフォーマットできます。この文字列には、%dのようなvarius形式のオプションが含まれています。お使いの端末に
種類これを:
男日
マニュアルを取得し、FORMATセクションをチェックします。
Toby Speightが警告したように、深夜にアプリを実行したい場合は、一度だけコール日付:
は#!/bin/bash
# Generate date template
dateTpl=$(date +%A,\ \%d\^postfix\ %B\ %Y)
# get the day of the month from the template, to decide which postfix should be use
dayOfMonth=$(echo $dateTpl | cut -d ' ' -f 2 | sed 's/\^postfix//g')
# Choose postfix
case "$dayOfMonth" in
1)
postfix="st"
;;
2)
postfix="nd"
;;
3)
postfix="rd"
;;
*)
postfix="th"
;;
esac
# Generate date string from template
myDate=$(echo $dateTpl | sed "s/postfix/$postfix/g")
echo $myDate
date
プログラムは、序数を生産する任意の変換を持っていないので、あなたはそれの外に接尾辞を置換する必要があります:
#!/bin/bash
d=$(date +%e)
case $d in
1?) d=${d}th ;;
*1) d=${d}st ;;
*2) d=${d}nd ;;
*3) d=${d}rd ;;
*) d=${d}th ;;
esac
date "+%A, $d %B %Y"
なお、ほとんどの英語スタイルのガイドは、序数の接尾辞を上付き文字として書くことを推奨します。あなたが本当にそれを主張するなら、あなたはそれを運動として扱うことができます!
二回date
を呼び出すことによって、私たちは真夜中に競合状態を危険にさらすことにも注意してください。私たちは別に、現在の時刻を見つけ、それをフォーマットすることでこれを避けることができます。
#!/bin/bash
s=$(date [email protected]%s)
d=$(date -d $s +%e)
case $d in
1?) d=${d}th ;;
*1) d=${d}st ;;
*2) d=${d}nd ;;
*3) d=${d}rd ;;
*) d=${d}th ;;
esac
date -d $s "+%A, $d %B %Y"
また、別の変数に(1回)日付を読み、その後、シェルでそれらをフォーマット:
#!/bin/bash
IFS=_ read a d b y < <(date +%A_%e_%B_%Y)
case $d in
1?) d=${d}th ;;
*1) d=${d}st ;;
*2) d=${d}nd ;;
*3) d=${d}rd ;;
*) d=${d}th ;;
esac
echo "$a, $d $b $y"
は、ここでこれを見て参考になるかもしれません:http://stackoverflow.com/questions/13627308/add-st-nd-rd-and-th-ordinal-suffix-to-a-number – DimaSan
あなたの質問が投票されたのは少し厳しいです。あなたは初心者ですが、悲しいことにそれをやったユーザーには何らかの理由があります。次回はこれまでに試したことのあるコード例をいくつか含めるようにしてください。または明示的な質問を明示的に書くのをやめてください。: 1.月の日だけをbashで得る方法はありますか? 2.どのように条件文を書くことができますか? 3.文字列の一致を置き換えるにはどうすればいいですか – atevm
私は恐らく、これらの文字の上付き文字版を、少なくとも移植可能な方法で端末に印刷することは不可能です。 –