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.