Ls çıktı nasıl sıralanır?


14

Bu çıktıyı titlepage_19.pdf'den önce titlepage_1.pdf ile sıralanmış olarak görüntülemek mümkün müdür?

$ ls
allTitlepage.pdf         titlepage_12.pdf  titlepage_19.tex  titlepage_26.pdf  titlepage_32.tex  titlepage_4.tex
allTitlepage.tex         titlepage_12.tex  titlepage_1.pdf   titlepage_26.tex  titlepage_33.pdf  titlepage_5.pdf
assignment.pdf           titlepage_13.pdf  titlepage_1.tex   titlepage_27.pdf  titlepage_34.pdf  titlepage_5.tex
assignment.tex           titlepage_13.tex  titlepage_20.pdf  titlepage_27.tex  titlepage_34.tex  titlepage_6.pdf
graphicsAssignment2.pdf  titlepage_14.pdf  titlepage_20.tex  titlepage_28.pdf  titlepage_35.pdf  titlepage_6.tex
graphicsAssignment2.tex  titlepage_14.tex  titlepage_21.pdf  titlepage_28.tex  titlepage_35.tex  titlepage_7.pdf
README.md                titlepage_15.pdf  titlepage_21.tex  titlepage_29.pdf  titlepage_36.pdf  titlepage_7.tex
thesisTitlepage.pdf      titlepage_15.tex  titlepage_22.pdf  titlepage_29.tex  titlepage_36.tex  titlepage_8.pdf
thesisTitlepage.tex      titlepage_16.pdf  titlepage_22.tex  titlepage_2.pdf   titlepage_37.pdf  titlepage_8.tex
titlepage_0.pdf          titlepage_16.tex  titlepage_23.pdf  titlepage_2.tex   titlepage_37.tex  titlepage_9.pdf
titlepage_0.tex          titlepage_17.pdf  titlepage_23.tex  titlepage_30.pdf  titlepage_38.pdf  titlepage_9.tex
titlepage_10.pdf         titlepage_17.tex  titlepage_24.pdf  titlepage_30.tex  titlepage_38.tex  titlepage_one.pdf
titlepage_10.tex         titlepage_18.pdf  titlepage_24.tex  titlepage_31.pdf  titlepage_3.pdf   titlepage_one.tex
titlepage_11.pdf         titlepage_18.tex  titlepage_25.pdf  titlepage_31.tex  titlepage_3.tex   titlepage_two.tex
titlepage_11.tex         titlepage_19.pdf  titlepage_25.tex  titlepage_32.pdf  titlepage_4.pdf

3
Başlık, yinelenen gibi göründüğü için daha spesifik olmalıdır (yine de olabilir).
Peter Mortensen

Yanıtlar:


31

-V [metin içindeki doğal tür (sürüm) sayıları] anahtarını kullanın

ls -v

Tek sütun istiyorsanız ls -1v
Vijay

13

Çıktı sıralanır. lsManpage'e göre :

-CftuvSUX veya --sort belirtilmemişse girdileri alfabetik olarak sıralayın.

Ancak daha ileri gitmek isterseniz, en az iki seçeneğiniz vardır:

Seçenek 1 - lsSıralama Anahtarları

man lsls man sayfasında şunları sıralamak için kullanabileceğiniz bir dizi anahtardan bahseder :

yok (-U), boyut (-S), zaman (-t), sürüm (-v), uzantı (-X)

Sizin durumunuzda "sürüm" sıralaması (-v) istiyorsunuz. Yine de dikkatli olun, çünkü bu aynı zamandablahblah-X.Y.Z-A tamamen istediğiniz şey olmayan bir düzenlemeye sahip olan her şeyi sıralayacaktır . Ayrıca bkz. GNU'nun sürüm sıralaması açıklaması .

Seçenek 2 - Sıralama komutlarına verilen borular

|Çıkışı başka bir komuta göndermek için bir kanal kullanabilirsiniz , örneğin, dosyalarınız varsa , başka şekillerde sıralamak için kullanabileceğiniz komut . Anahtar olmasını sağlar çıkışı tek satırlık başına dosyaya olduğunu.sortls -1 | sort -n-1

Aynı şekilde, sedveya gibi şeyleri kullanarak sıralamaya yardımcı olması için çıktıyı değiştirebilirsiniz awk.

Bu tür bir * soruyu cevaplamanın birçok yolu vardır. Linux kabuk eğitimini faydalı bulabilirsiniz.

* (Orada ne yaptığımı görüyor musunuz? :-P)


6

Zaten bir yorumda belirttiği gibi, çıkış olduğunu zaten sıralanmış, ancak karakterlerin değil, sayılar. Sen borusuna çıktısını isteyebilirsiniz lsyoluyla sortdizeleri içinde numaralarıyla tür bir anahtarı olan:

ls | sort --version-sort

Gönderen man :

-V, --version-sort
         natural sort of (version) numbers within text

Dezavantajı: Biz kesilirken lso zaman dosya çıkışları tabloya (yayınınızda gösterdiğim gibi) geçerli ekranda fit gibi birçok sütunlar gibi olan. Ancak lsçıktının bir dosyaya veya bir boruya (olduğu gibi ls | sort) yönlendirildiğini fark ettiğinde ls, dosyaları tek bir sütunda yazdırır, çünkü daha sonra çıktının satır satır işleneceğini varsayar (dosya dosya olarak) başka bir program tarafından (gibi sort). Böylece çıktısıls | sort -V birden çok sütunlu bir tablo yerine bir sütunda olacaktır . Bkz @vijay 'ın basit ama mükemmel bir yanıt önlemek için nasıl.


1
Ayrıca çıktıyıcolumn
David Conrad

0

ls -l : dizindeki dosyaları dikey olarak listeler, ancak belirli bir sırayla listeler.

ls -l | sort -k 3: -k 3önceki komutun çıktısını 3. sütuna göre sıralar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.