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!

Clément
sumber

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).

akira
sumber
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