在多个文件上使用linux排序

时间:2015-06-18 19:39:16

标签: linux sorting

有没有办法可以同时使用Linux为许多文件运行以下命令?

$ sort -nr -k 2 file1 > file2

1 个答案:

答案 0 :(得分:0)

我假设您有许多输入文件,并且您想要为每个文件创建一个排序版本。我会用

之类的东西来做这件事
for f in file*
do
    sort $f > $f.sort
done

现在,这有一个小问题,如果再次运行它,如果不仅会再次对所有文件进行排序,它还会创建file1.sort.sort以与file1.sort一起使用。有各种方法可以解决这个问题。我们可以通过创建排序文件来解决第二个问题,因为不会有以#34;文件"开头的名字:

for f in file*
do
    sort $f > sorted.$f
done

但那有点奇怪,而且我不想要那样命名的文件。或者,我们可以使用稍微聪明的脚本来检查文件是否需要排序,并避免这两个问题:

for f in file*
do
    if expr $f : '.*\.sort' > /dev/null
    then
        : no need to sort
    elif test -e $f.sort
    then
        : already sorted
    else
        sort -nr -k 2 $f > $f.sort
    fi
done