今日の日付を取得し、ファイル名に使用します


10

コマンドラインを使用して、名前に今日の日付を含むログファイルを作成します(たとえば、今日は2011年5月17日なので、ファイル名はにする必要がありますlog051711)。

ファイルの作成方法は知っていますが(touch filename)、今日の日付を取得する方法がわかりません。のマニュアルを確認しましたがdate、実際に出力をフォーマットできないようです。

任意の助けいただければ幸いです。

回答:


10

'+ FORMAT'パラメータを使用して出力をフォーマットできます。例:

touch "log$(date +'%m%d%y')"

FORMATで使用できるシーケンスについては、マンページを参照してください。


くそー、36秒は遅すぎる。;-)
htorque

1
私はcronジョブでこれを使用することを考え出した、私はそれを読んでそうすることを、%の-signsをエスケープする必要がありました:touch "log$(date +'\%m\%d\%y')"
ルイB.

3

コマンドを実行する

echo "myfilename-"`date +"%d-%m-%Y"`

これを出力として与えます:

myfilename-21-02-2014

実際にはこれが印刷されますmyfilename-date +%d-%m-%Y
Adaephon 2014

True .. MyFileNameは単なるプレフィックスです..必要に応じてそれを維持できます。それ以外の場合は、date +"%d-%m-%Y" これで十分です...日付のみを表示します21-02-2014
Sreedhar GS

ああ、わかりました。`があなたの答えに現れなかったので、混乱しました。これは、コードブロックを示すためにaskubuntuで使用されるためです。バックマークでコードを囲むか、4つのスペースを含むコードで段落をインデントして、コードをマークする必要があります。初心者の方は、おそらくエディタの上にあるメニューを使用して、送信する前にテキストボックスの下のプレビューで投稿を確認してください。
Adaephon 2014


0

他の誰かがこれを行うより良い方法を持っていると確信していますが、月日年がこれを機能させることを望むと仮定すると:

touch log`date +%m%d%y`  

また、%m、%d、%Yを並べ替えて、必要な順序を反映させることができます。日付のmanページで、追加のフォーマットについて詳しく説明しています。


0

Pythonもこの作業を実行できます。そのための小さなスクリプトは次のようになります。

#!/usr/bin/env python
import time,os

date=time.gmtime()
month = str(date.tm_mon).zfill(2)
day=str(date.tm_mday).zfill(2)
year=str(date.tm_year)[-2:]
fname = 'log' + month + day + year

with open(fname,'a') as f:
    os.utime(fname,None) 

ここでの考え方は単純です。time.gmtime()現在の日付を取得し、それが返す構造から特定のフィールドを抽出し、適切なフィールドを文字列に変換し、結果の名前でファイル名を作成します。

テスト走行:

$ ls
touch_log_file.py*
$ ./touch_log_file.py                                                                                             
$ ls
log010317  touch_log_file.py*

執筆の時点では、2017年1月3日です。したがって、結果のファイル名は適切に月、日、年です- log010317

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.