Nhận ngày hôm nay và sử dụng nó trong tên tệp


10

Sử dụng dòng lệnh, tôi muốn tạo một tệp nhật ký với ngày hôm nay trong tên (ví dụ: hôm nay là ngày 17/05/2011, vì vậy tên tệp sẽ phải là log051711).

Tôi biết cách tạo tệp ( touch filename), nhưng tôi không biết làm thế nào để có được ngày hôm nay. Tôi đã xem hướng dẫn date, nhưng dường như tôi không thể định dạng đầu ra của nó?

Bất kỳ trợ giúp sẽ được đánh giá cao.

Câu trả lời:


10

Bạn có thể định dạng đầu ra bằng tham số '+ FORMAT', vd

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

Xem trang hướng dẫn về những trình tự bạn có thể sử dụng trong FORMAT.


Chết tiệt, 36 giây quá chậm. ;-)
htorque

1
Tôi chỉ cần tìm ra rằng để sử dụng điều này trong một công việc định kỳ, tôi phải thoát khỏi% -signs, để nó đọc:touch "log$(date +'\%m\%d\%y')"
Louis B.

3

Chạy lệnh

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

đưa ra điều này như là đầu ra:

myfilename-21-02-2014

Trên thực tế điều này sẽ in myfilename-date +%d-%m-%Y.
Adaephon

Đúng .. MyFileName chỉ là tiền tố .. Nếu cần chúng tôi có thể giữ nó, nếu không .. tiếng vang date +"%d-%m-%Y" này là đủ ... nó sẽ chỉ in vào ngày 21-02-2014
Sreedhar GS

Ah, bây giờ tôi thấy: Tôi đã bối rối vì `không xuất hiện trong câu trả lời của bạn. Điều này là do chúng được sử dụng bởi Askubfox để chỉ ra các khối mã. Bạn nên đánh dấu mã bằng cách bao quanh nó bằng backticks hoặc thụt lề đoạn văn với mã có 4 khoảng trắng. Đối với người mới bắt đầu, có lẽ bạn nên sử dụng menu phía trên trình chỉnh sửa cho điều đó và kiểm tra bài đăng của bạn trong phần xem trước bên dưới hộp văn bản trước khi gửi.
Adaephon

0

Một trong những linh hồn có thể:

date +log%y%m%d | xargs touch

tạo ra log111017


0

Tôi chắc chắn rằng ai đó khác có cách tốt hơn để làm điều này nhưng giả sử bạn muốn tháng này sẽ hoạt động:

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

và bạn có thể sắp xếp lại% m,% d,% Y để phản ánh thứ tự bạn muốn. Trang man cho ngày cho bạn biết thêm về các định dạng bổ sung.


0

Python cũng có thể làm công việc này. Kịch bản nhỏ cho điều đó sẽ là như sau:

#!/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) 

Ý tưởng ở đây rất đơn giản: chúng tôi sử dụng time.gmtime()để lấy ngày hiện tại, trích xuất các trường cụ thể từ cấu trúc mà nó trả về, chuyển đổi các trường thích hợp thành chuỗi và tạo tên tệp với tên kết quả.

Chạy thử nghiệm:

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

Tại thời điểm viết nó là ngày 3 tháng 1 năm 2017. Do đó, tên tệp kết quả là tháng, ngày, năm - log010317

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.