Unix

2010-11-10 24 views
5

numaralı ls l l sahiplerinin sıralanması Sahipleri ls-l'den alfabetik sıraya göre sıralamak istiyorum ve bunu yapmanın bir yolunu anlayamıyorum. Ls-l gibi bir şey biliyorum sort, dosya adını sıralar ama sahipleri nasıl sıraya koyarım? yaklaşıkUnix

cevap

0

Nasıl ...

ls -l | cut -d ' ' -f 3 | sort | uniq 
0

bu deneyin:

ls -l | awk '{print $3, $4, $8}' | sort

Bu kullanıcı adı, grup adı ve dosya adını yazdırır.

ls -l | awk '{print $3, $4, $0}' | sort

Bu kullanıcı adı, grup adı ve ilk kullanıcı adına göre sıralanmış tam ls -l çıktısı, yazdırılacaktır (Dosya adı boşluk içeremez), sonra Grup adı, o zaman ne -l ls

ls -l | sort -k 3 

diğer alanlara dayalı sıralama bu fikri uzatabilirsiniz ve birden -k seçeneğe sahiptir:

+0

çok teşekkür ederim. İkincisi, hile yaptı. – brian

+0

@brian no problem. Bunu kabul edilen cevap olarak işaretlemek o zaman? – Alex

10

sahibi üçüncü alandır ilk baskılar, böylece -k 3 kullanın. Örneğin, belki sahibi tarafından sıralamak istediğiniz ve sonra azalan sırayla boyutu: Sadece sahipleri veya sahibi göre sınıflandırılmaktadır bütün bilgileri istiyorum

ls -l | sort -k 3,3 -k 5rn 
1

emin değilim. Eski durumda, superfo'nun çözümü neredeyse doğrudur. Aksi tüm dizinleri çalışmaz ayırıcı olarak bunları kullanır kesti çünkü Ek olarak ls beyaz boşluk tekrar kaldırmak için 'ın çıkışını tr ile gerek. *

Yani olsun sonunda Bu:

ls -l | tr -s ' ' | cut -d ' ' -f 3 | sort | uniq 

* Bazı dizinleri düzenini korumak için ek bir boşluk olsun ikinci alana bir iki haneli değeri ve tek rakam ile diğer tüm hatları var.