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

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

これを試して、現在の月曜日の日付を取得してください。

wd=`date +%u`; 
let wd=wd-1; 
mon=`date --date="-$wd day" +%Y%m%d`;

GNU の日付を持たない私たち (OS X のように) には、"-v" パラメーターがあるかもしれません

次に、これを行うことができます:

# Most recent Monday
date -v -Mon

# Output as of this writing
Mon Jun 24 12:35:48 EDT 2013

date -v -Mon "+%Y%m%d"

# Outputs
20130624

今日が月曜日の場合、これも問題ではないようです。私の場合は木曜日です

# Today's date
date

# Outputs
Thu Jun 27 12:41:39 EDT 2013

# Most recent Thursday
date -v -Thu

# Outputs
Thu Jun 27 12:41:46 EDT 2013

#monday
date -dmonday +%Y%m%d

#last monday
date -dlast-monday +%Y%m%d

#next monday
date -dnext-monday +%Y%m%d

#two mondays from now
date -d'monday+14 days' +%Y%m%d

#two mondays ago
date -d'monday-14 days' +%Y%m%d

#although, if you fancy yourself an Abraham Lincolin
date -d'monday-fortnight ago' +%Y%m%d #2 weeks ago
date -d'monday+fortnight' +%Y%m%d #2 weeks from now

#Monday Next Year
date -d'52+monday' +%Y%m%d

#However, Monday Last Year
date -d'52-monday' +%Y%m%d  #DOES NOT  WORK




#you can try a day other than monday
#and format this differently.

範囲があなたの後にある場合、いくつかのことをする必要があるかもしれません

#Tuesday to Sunday
#since today is monday, I'll use Tuesday
echo `date -dtuesday +%Y%m%d-``date -dnext-sunday +%Y%m%d`

これは次のように出力されます:

<ブロック引用>

20110628-20110703

日付の詳細

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

私はそれを読みました:

<ブロック引用>

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


これは実際に要求されたものに答えていると思います:

date -d "next monday - 7 days"

Linux
  1. Bash For Loopsの「do」キーワードの目的は?

  2. Bashの完了が代替案を循環することは可能ですか?

  3. Linux – Linuxで現在の日付のファイルを取得しますか?

  1. Bashで、最初のX行をスキップしてファイルを印刷します

  2. 現在のディレクトリ内のすべてのファイルに対してコマンドを実行します

  3. bash で現在のパーティションの空きディスク容量を確認する

  1. Bashビルトインコマンドの個々のマニュアルページを取得しますか?

  2. ループの維持 – Bash For、While、Until ループの例

  3. ターミナルで現在の日付と時刻を取得し、ターミナルでカスタム コマンドを設定するにはどうすればよいですか?