Bash:检查文件是否使用sort -c文件排序

时间:2018-12-08 21:24:53

标签: bash sorting

使用

sort -c file

我收到第一行未排序为报告的错误行,如果文件已排序则什么也没有。 (并且-c不会对文件进行排序。)

我想检查是否收到报告。 这样的事情:

if [ $(sort -c file) == *something* ]
then
    echo wasn't sorted
    sort file
    ...
else
    echo already sorted
    ...
fi

有可能吗?怎么办?

使用-C而不是-c的相同问题(如果使用“ silent”选项,是否相同)...

2 个答案:

答案 0 :(得分:3)

if sort -C file; then
  # return code 0
  echo "sorted"
else
  # return code not 0
  echo "not sorted"
fi

答案 1 :(得分:2)

这里是相同的概念,只是带有一点语法糖。

sort -C file || echo -n "not " ; echo "sorted"

我更喜欢Cyrus使用的格式,我只是想提供一个有趣的版本。