Menyortir file checksum berdasarkan nama file


2

Saya mencoba untuk mengurutkan keluaran dari md5sum program dengan nama file, secara numerik (yaitu, nama file semua cocok log-\d+\.txt ). Saya mencoba

sort -g "-t " -k 2 CHECKSUMS

tapi itu semacam oleh checksum. Menggunakan

sort "-t " -k 2 CHECKSUMS

tidak mengurutkan berdasarkan nama file, tetapi log-12.txt ditempatkan sebelumnya log-2.txt.

Ada petunjuk? Terima kasih!

Jawaban:


2

coba ini:

$> sort -t '-' -k 2 -n CHECKSUMS

itu membagi garis d41d8cd98f00b204e9800998ecf8427e log-1.txt pada - ... jadi angka adalah string paling pertama yang memungkinkan sort untuk melakukan hal yang benar (tm).


Bagaimana jika jumlah tanda hubung tidak sama di setiap file (mis. a-1, a-2, a-a-1, b-1, b-a-a-1, b-a-b-1, b-a-b-2, ... )? Apakah ada cara untuk mengatakan pengurutan untuk mulai membandingkan secara numerik segera setelah menemukan angka di kedua string yang dibandingkan?
— Clément

gunakan cara lain (sed, awk, python, perl dll) untuk mengekstraksi angka, letakkan di depan nama file dan kemudian gunakan sort ...
— akira

Ok, lakukan dengan awk.
— Clément
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.