Разделите его на несколько строк, используя grep
, добавьте номер строки (индекс), используя cat -n
а затем sort
по значению. Для наименьшего числа выберите первую запись ( head -1
)
# here is the file...
$ cat data.txt
11.0 22.0 33.0 0.5 44.0
# here is the output you want
$ grep -o '[^ ]+' data.txt | cat -n | sort -r --key=2 | head -1
4 0.5
Если вы хотите, чтобы значения в отдельных переменных
# store the value in a variable
$ res=`grep -o '[^ ]+' data.txt | cat -n | sort -r --key=2 | head -1 | xargs`
# then cut out the data
$ index=`echo $res | cut -f1 -d' '`
$ value=`echo $res | cut -f2 -d' '`
$ echo $index
4
$ echo $value
0.5
Использование Perl однострочного
> cat data.txt
11.0 22.0 33.0 0.5 44.0
> perl -lane ' {@arr=sort @F;foreach(@F) { $x++; print "$x $_" if $arr[0]==$_ } }' data.txt
4 0.5
>