このようにアルファベット順に並べる必要があります。
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 で並べ替えるのではなく、チルダの後ろの文字を取得してそのように並べ替える必要があります。これを行う方法を知っている人はいますか?よろしくお願いします。
編集:明確にするためにソートする必要があり、「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
答え1
質問への入力に基づいて、コマンドは
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
編集する質問に追加された新しい要件を検討してください。
ソートキーは、チルダ(~
)文字の後から行末までのすべての項目、または最初のチルダと2番目のチルダの間のすべての項目です。これは、そのYoutube
部分がソートキーに含まれることを意味します。もちろん、これは同じfoo"
またはbar"
部分的な行のペアがある場合にのみ関連します。
大文字と小文字を区別せずに並べ替えるには、オプションを追加する必要があります-f
。