Shell脚本,可反转文件中各行的顺序

时间:2019-01-02 15:52:27

标签: bash shell

我的任务:

  

编写一个shell脚本,该脚本反转文件中名称由第一个参数指定的行的顺序,并将其包含的行以相反的顺序复制到标准输出中。

     

使用cat -nsort -nr以降序排列,并且sed可用于删除可预测的文本。

     

例如,如果文件包含以下内容:

First
Second
Third
Fourth
     

输出应为:

Fourth
Third
Second
First

我不能使用tac

1 个答案:

答案 0 :(得分:0)

在没有tac的情况下,可以使用Perl脚本,例如:

perl -le 'while (<>) {
    chomp;
    push @lines,$_;
}
END{ print for reverse @lines; }'
inputfile

如果您的绝对要求是使用catsortsed,则可以执行以下操作:

cat -n file|sort -rnk1,1|sed -e s/^[[:blank:]]*[[:digit:]]*[[:blank:]]//

这将删除前导空白字符; cat -n中的数字和原始文本行之前的空格。