有没有办法可以同时使用Linux为许多文件运行以下命令?
$ sort -nr -k 2 file1 > file2
答案 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