Sắp xếp theo ngày


16

Nguyên:

Ngày 23 tháng 1 năm 2011 10:42 SOMETHING 2007.12.20.avi
Ngày 26 tháng 6 năm 2009 SOMETHING 2009.06.25.avi
Ngày 12 tháng 2 năm 2010 SOMETHING 2010.02.11.avi
Ngày 29 tháng 1 năm 2011 09:17 SOMETHING 2011.01.27.avi
Ngày 11 tháng 2 năm 2011 20:06 SOMETHING 2011.02.10.avi
Ngày 27 tháng 2 năm 2011 23:05 SOMETHING 2011.02.24.avi

Đầu ra:

Ngày 27 tháng 2 năm 2011 23:05 SOMETHING 2011.02.24.avi
Ngày 11 tháng 2 năm 2011 20:06 SOMETHING 2011.02.10.avi
Ngày 29 tháng 1 năm 2011 09:17 SOMETHING 2011.01.27.avi
Ngày 23 tháng 1 năm 2011 10:42 SOMETHING 2007.12.20.avi
Ngày 12 tháng 2 năm 2010 SOMETHING 2010.02.11.avi
Ngày 26 tháng 6 năm 2009 SOMETHING 2009.06.25.avi

Tôi đã tạo danh sách trên (Bản gốc) với:

ls -A -lR | grep "^-" | sed "s/.\{43\}/&\n/" | grep -v "^-" | while read ONELINE; do if echo $ONELINE | cut -d " " -f3 | grep -o '[0-9][0-9]:[0-9][0-9]' > /dev/null 2>&1; then echo $ONELINE | sed "s/.\{7\}/&$(date +%Y) /"; else echo $ONELINE; fi; done

Làm thế nào tôi có thể nhận được đầu ra trong đó tập tin mới nhất ở trên cùng?


2
@ user4724: yuo đã tạo danh sách như thế nào?

@ user4724: Điều đó không tạo ra loại xuất chi tương tự cho tôi mà bạn có - bất kể Gilles có câu trả lời

Câu trả lời:


19

Trên hầu hết các đơn vị, lscó một -ttùy chọn. Từ mantrang hộp Debian của tôi:

-t sắp xếp theo thời gian sửa đổi

Hãy thử lệnh sau:

$ ls -lt


tôi cần nó một cách đệ quy, xin lỗi
LanceBaynes

+ ls -lt sẽ liệt kê một thư mục đầy đủ, nếu 1 tệp thay đổi trong đó.
LanceBaynes

14

Đó có phải là tệp văn bản bạn đang cố sắp xếp hay bạn đang cố xem danh sách thư mục theo ngày? Đối với cái sau, sử dụng -tcờ đểls . Đối với trước đây, hãy xem cụ thể là -Mcờ sắp xếp GNU, sắp xếp theo chữ viết tắt tên ba tháng. Lệnh sau sắp xếp theo các cột thứ 3, 1, 2 và 4, coi khóa sắp xếp thứ hai là tên tháng.

sort -k 3 -k 1M -k2 -k4 in.txt

Đừng xem xét luôn luôn sử dụng ngày theo kiểu Nhật Bản / ISO, luôn theo thứ tự YYYY-MM-DD-HH-MM-SS (nghĩa là chiều rộng cột không đổi đầu tiên, đáng kể nhất). Cách sắp xếp theo ngày này giống hệt với sắp xếp từ vựng.


Đừng quên các số 0 đứng đầu về đề xuất định dạng ngày đó. Đây là định dạng tôi sử dụng bất cứ khi nào tôi tự định dạng chuỗi.
đánh cắp

@stolenmoment Bạn có thể sử dụng khoảng trắng thay vì số không nếu bạn không quan tâm đến không gian, điểm quan trọng là một cột không đổi với. 2018  5 26hoạt động tốt như 2018 05 26(miễn là bạn không trải qua quá trình đánh dấu hợp nhất các không gian liên tiếp với nhau), điều không hoạt động tốt là gì 2018 5 26.
Gilles 'SO- ngừng trở nên xấu xa'

Vâng, theo phản xạ tôi tránh không gian trong tên tệp, tôi chắc chắn bạn có thể đoán tại sao.
đánh cắp

3

Tôi không chắc chức năng có trong lslệnh khi câu hỏi ban đầu được hỏi không, nhưng bây giờ bạn có thể sử dụng tùy chọn --full-time.

ví dụ,

ls -t --full-time 

sẽ sắp xếp với thời gian lâu đời nhất ở phía dưới; hoặc nếu bạn sử dụng:

ls -tr --full-time

sau đó nó sẽ đảo ngược thứ tự.


Câu hỏi là về cách sắp xếp tệp theo ngày / giờ sửa đổi. Các -ttùy chọn trả lời câu hỏi đó hoàn toàn; --full-timekhông thực sự có liên quan.
G-Man nói 'Phục hồi Monica'

Tùy chọn duy nhất -t không cung cấp cho bạn năm đối với các tệp được sửa đổi trong vòng sáu tháng trong đó - thời gian đầy đủ cung cấp cho bạn chính xác điều đó. Bạn cũng có thể sử dụng kiểu thời gian để định dạng định dạng ngày theo ý thích. ví dụ: ls -ltr - phong cách thời gian +% Y-% m-% d \% H:% M:% S
Bevan Thomas

Tôi không chắc quan điểm của bạn là gì.  ls -tkhông cung cấp cho bạn chế độ và chủ sở hữu của các tệp, tên máy chủ và phiên bản hệ điều hành hoặc giá trà ở Trung Quốc.  ls -tthậm chí không hiển thị ngày sửa đổi. Nhưng câu hỏi không phải là về việc hiển thị thông tin tệp, mà là về việc sắp xếp các tệp theo ngày sửa đổi. Bạn không đóng góp cho câu trả lời của câu hỏi; bạn đang thêm thông tin bổ sung cần biết. Khi bạn nhận được 50 điểm danh tiếng , bạn có thể đăng loại thông tin đó dưới dạng nhận xét .
G-Man nói 'Phục hồi Monica'

-3

đệ quy ( R) và tạm dừng ( |more)

ls -ltR |more
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.