Sort
如何按不在開頭的字母按字母順序對行進行排序?
我需要按字母順序對這樣的東西進行排序
https://www.youtube.com/feeds/videos.xml?channel_id=ABC "~foo" Youtube https://www.youtube.com/feeds/videos.xml?channel_id=XYZ "~bar" Youtube
等等。我需要它來獲取該波浪號之後的字元並以這種方式對其進行排序,而不是按照通常的通道 ID 進行排序。有人知道如何做到這一點嗎?提前致謝。
編輯:為了澄清,我需要它們排序 az 並且只有“foo”、“bar”部分(而不是
Youtube
標籤),並且應該忽略大寫/小寫的差異,我只需要處理英文字元。所以它的預期外觀是https://www.youtube.com/feeds/videos.xml?channel_id=XYZ "~bar" Youtube https://www.youtube.com/feeds/videos.xml?channel_id=ABC "~foo" Youtube
根據問題的輸入,命令
sort -t'~' -k2 inputfile
印刷
https://www.youtube.com/feeds/videos.xml?channel_id=XYZ "~bar" Youtube https://www.youtube.com/feeds/videos.xml?channel_id=ABC "~foo" Youtube
請參閱
man sort
或https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/sort.html編輯以考慮添加到問題中的新要求:
排序鍵將是波浪號 (
~
) 字元之後直到行尾的所有內容,或者是第一個和第二個波浪號之間的所有內容。這意味著該Youtube
部分將包含在排序鍵中。當然,這僅在有一對具有相同foo"
或bar"
部分的線時才有意義。要獲得不區分大小寫的排序,您必須添加 option
-f
。