Как отсортировать выходной файл в Linux на основе условия первого значения этого файла? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть вывод из скрипта Perl, содержащий более 500 чисел (положительные и отрицательные). Я хочу сделать сортировку на основе первого значения этого вывода.

Например:

-2 or 2
 3
-1
-5

Если первое значение равно 2, то результат должен быть:

 3
 2
-1
-5

Если первое значение -2, то результат должен быть:

-5 
-2
-1
 3

Я написал

# if the first value is positive number then do a reverse sort, if negative do a normal sort.
script outpout| {if [[awk FNR == 1 && $1 -le 0]] then sort -k1nr else sort k1n  fi } 

Я получил > (blinking space) в качестве вывода. Есть ли какие-либо проблемы с моим синтаксисом (отсутствует символ?) Если у вас есть идеи, как это сделать, сортируйте его другим способом, это будет приветствоваться.

1 Ответ

1 голос
/ 08 апреля 2020

Это должно сработать:


FIRST=`head -1 output`

if [ $FIRST -lt 0 ]
then
    #Negative
    sort -n output
elif [ $FIRST -gt 0 ]
then
    #Positive
    sort -nr output
else
    echo "Neither Positive Nor Negative"
fi
...