Linux中國

Linux 的 sort 命令的七個有趣實例(二)

在我們繼續深入之前,先創建一個文本文檔『month.txt』,並且將上一次給出的數據填進去。

$ echo -e "marndecnoctnsepnfebnaug" > month.txt
$ cat month.txt

Populate Content

15、 通過使用』M『選項,對』month.txt『文件按照月份順序進行排序。

$ sort -M month.txt

注意:『sort』命令需要至少3個字元來確認月份名稱。

Sort File Content by Month in Linux

16、 把數據整理成方便人們閱讀的形式,比如1K、2M、3G、2T,這裡面的K、G、M、T代表千、兆、吉、梯。 (LCTT 譯註:此處命令有誤,ls 命令應該增加 -h 參數,徑改之)

$ ls -lh /home/$USER | sort -h -k5

Sort Content Human Readable Format

17、 在上一篇文章中,我們在例子4中創建了一個名為『sorted.txt』的文件,在例子6中創建了一個『lsl.txt』。『sorted.txt'已經排好序了而』lsl.txt『還沒有。讓我們使用sort命令來檢查兩個文件是否已經排好序。

$ sort -c sorted.txt

Check File is Sorted

如果它返回0,則表示文件已經排好序。

$ sort -c lsl.txt

Check File Sorted Status

報告無序。存在矛盾……

18、 如果文字之間的分隔符是空格,sort命令自動地將空格後的東西當做一個新文字單元,如果分隔符不是空格呢?

考慮這樣一個文本文件,裡面的內容可以由除了空格之外的任何符號分隔,比如『|』,『』,『+』,『.』等……

創建一個分隔符為+的文本文件。使用『cat『命令查看文件內容。

$ echo -e "21+linux+server+productionn11+debian+RedHat+CentOSn131+Apache+Mysql+PHPn7+Shell Scripting+python+perln111+postfix+exim+sendmail" > delimiter.txt
$ cat delimiter.txt

Check File Content by Delimiter

現在基於由數字組成的第一個域來進行排序。

$ sort -t '+' -nk1 delimiter.txt

Sort File By Fields

然後再基於非數字的第四個域排序。

Sort Content By Non Numeric

如果分隔符是製表符,你需要在』+『的位置上用$』t』代替,如上例所示。

19、 對主用戶目錄下使用『ls -l』命令得到的結果基於第五列(『文件大小』)進行一個亂序排列。

$ ls -l /home/avi/ | sort -k5 -R 

Sort Content by Column in Random Order

每一次你運行上面的腳本,你得到結果可能都不一樣,因為結果是隨機生成的。

正如我在上一篇文章中提到的規則2所說——sort命令會將以小寫字母開始的行排在大寫字母開始的行前面。看一下上一篇文章的例3,字元串『laptop』在『LAPTOP』前出現。

20、 如何覆蓋默認的排序優先權?在這之前我們需要先將環境變數LC_ALL的值設置為C。在命令行提示欄中運行下面的代碼。

$ export LC_ALL=C

然後以非默認優先權的方式對『tecmint.txt』文件重新排序。

$ sort tecmint.txt

Override Sorting Preferences

覆蓋排序優先權

不要忘記與example 3中得到的輸出結果做比較,並且你可以使用『-f』,又叫『-ignore-case』(忽略大小寫)的選項來獲取更有序的輸出。

$ sort -f tecmint.txt

Compare Sorting Preferences

21、 給兩個輸入文件進行『sort『,然後把它們連接成一行!

我們創建兩個文本文檔』file1.txt『以及』file2.txt『,並用數據填充,如下所示,並用』cat『命令查看文件的內容。

$ echo -e 「5 Reliablen2 Fastn3 Securen1 open-sourcen4 customizable」 > file1.txt
$ cat file1.txt

Populate Content with Numbers

用如下數據填充』file2.txt『。

$ echo -e 「3 RedHatn1 Debiann5 Ubuntun2 Kalin4 Fedora」 > file2.txt
$ cat file2.txt

Populate File with Data

現在我們對兩個文件進行排序並連接。

$ join <(sort -n file1.txt) <(sort file2.txt)

Sort Join Two Files

我所要講的全部內容就在這裡了,希望與各位保持聯繫,也希望各位經常來逛逛。有反饋就在下面評論吧。

via: http://www.tecmint.com/linux-sort-command-examples/

作者:Avishek Kumar 譯者:DongShuaike 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...
    Linux中國

    SSL/TLS 加密新紀元 – Lets Encrypt

    根據 Let's Encrypt 官方博客消息,Let's Encrypt 服務將在下周(11 月 16 日)正式對外開放。 Let's Encrypt 項目是由互聯網安全研究小組(ISRG,Internet Security Research Group)主導並開發的一個新型數字證書認證機構(CA,Certificate ...