GNU/Linux >> Linux の 問題 >  >> Linux

bash で日付形式を変換する

OSXでは、-fを使用して入力形式を指定し、-jを使用して日付を設定せず、出力形式指定子を使用しています。例:

$ date -j -f "%m/%d/%y %H:%M:%S %p" "8/22/15 8:15:00 am" +"%m%d%y"
082215

あなたの例:

$ date -j -f "%d %b %Y" "27 JUN 2011" +%Y%m%d
20110627

#since this was yesterday
date -dyesterday +%Y%m%d

#more precise, and more recommended
date -d'27 JUN 2011' +%Y%m%d

#assuming this is similar to yesterdays `date` question from you 
#http://stackoverflow.com/q/6497525/638649
date -d'last-monday' +%Y%m%d

#going on @seth's comment you could do this
DATE="27 jun 2011"; date -d"$DATE" +%Y%m%d

#or a method to read it from stdin
read -p "  Get date >> " DATE; printf "  AS YYYYMMDD format >> %s"  `date
-d"$DATE" +%Y%m%d`    

#which then outputs the following:
#Get date >> 27 june 2011   
#AS YYYYMMDD format >> 20110627

#if you really want to use awk
echo "27 june 2011" | awk '{print "date -d\""$1FS$2FS$3"\" +%Y%m%d"}' | bash

#note | bash just redirects awk's output to the shell to be executed
#FS is field separator, in this case you can use $0 to print the line
#But this is useful if you have more than one date on a line

日付の詳細

これは GNU date でのみ機能することに注意してください

私はそれを読みました:

<ブロック引用>

-d をサポートできない Solaris バージョンの date 日付の sunfreeware.com バージョンを置き換えることで解決できます


Linux
  1. Bashは\xc3\ x89をÉに変換しますか?

  2. Bashを使用して特定のファイルのmtimeを取得しますか?

  3. 現在の週の月曜日の日付を出力します (bash で)

  1. 引数が bash シェルで有効な日付かどうかを確認する

  2. Linux、DSTセーフのbashで昨日の日付を取得

  3. bashで日付から日数を引く

  1. Linux bashでISO日付をエポックからの秒数に変換する

  2. 人間が読める形式を bash のバイトに変換する

  3. 年と年の日から日付YYYYMMDDに変換する方法は?