Найдите максимальное значение Column3 и распечатайте значения Column1 и 2 только

В системе Linux вам необходимо запустить внешний скрипт .

Вот документация :https://wiki.archlinux.org/index.php/OpenVPN#DNS

Скрипты можно найти в здесь или более новой версии Linux здесь , и вы можете вызвать их, добавив это в конфигурацию клиента openvpn:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

1
27.11.2019, 20:19
2 ответа

Я бы использовал awk. Предполагая, что данные отформатированы точно в соответствии с вашими образцами данных, следующий результат даст желаемый результат:

awk -v MAX=0 '{ if(NR>1 && $3>MAX){WANT1=$1; WANT2=$2; MAX=$3}} END{print WANT1, WANT2}' infile > outfile
3
27.01.2020, 23:17

Предполагая, что ваши данные отформатированы точно так, как вы указали (, это особенно касается 3-го столбца, все числа выровнены по левому краю )и что эти данные предоставляются путем catчтения файла, вы можете попробовать это команда:

*input generating command* | sort -nrk3 | awk '{print $1 " " $2}' > output_file

Если ваши данные предоставляются другой командой или источником, измените catна эту другую команду. Для получения дополнительной информации см. этот пост , который я просто адаптировал под ваши нужды.

Редактировать:

Я немного изменил приведенную выше команду, так как нет необходимости указывать sortначинать с символа 1 столбца 3, так как sort всегда рассматривает пробел как разделитель. Конечно, можно передать входной файл прямо в sort, как указал пользователь. Если заголовки также являются частью ваших данных, измените приведенную выше команду на:

*input generating command* | sort -nrk3 | awk '{if (NR>1) print $1 " " $2}' > output_file
1
27.01.2020, 23:17

Теги

Похожие вопросы