首页 > 解决方案 > Linux shell脚本按字母顺序对文本行进行反向排序(最好不使用排序)

问题描述

我正在尝试学习 Linux shell 脚本,所以对此我很陌生。我目前有一个包含 26 个单词的文件(称为 alphabet.txt),每个单词都以 AZ 开头,但这里没有排序。为简单起见,我们将其设为 3 个单词,全部位于不同的行,每个单词以 AC 开头,例如:Banana、Apple、Carrot。

我想知道如何编写一个shell 脚本,它将获取alphabet.txt 的内容,以相反的字母顺序对它们进行排序,然后将排序后的内容放入一个新文件中,例如alphabetSorted.txt。所以最后,alphabetSorted.txt 必须有以下内容:Apple,Banana,Carrot 在不同的行中按顺序排列。

如果可能的话,我想知道如何使它适用于任何文件,而不仅仅是alphabet.txt。

标签: linuxsh

解决方案


您可以使用带有“-r”标志的排序命令,该标志指定逆序排序。

输出可以重定向到一个新文件

sort -r alphabet.txt > alphabetSorted.txt

或者,使用允许指定输出文件的内置选项 -o。

sort -r alphabet.txt -o alphabetSorted.txt

两个命令执行完全相同的操作。


推荐阅读