開始以外の文字で行をアルファベット順にソートする方法は?

開始以外の文字で行をアルファベット順にソートする方法は?

このようにアルファベット順に並べる必要があります。

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

おすすめ記事