$ awk -F'\t' 'NR==1 {print ; next};
$3 > largest[$1] { largest[$1]=$3; line[$1] = $0 };
END { for (id in largest) { print line[id] }}' input.txt
1 R 55 1.94E-31 N/A N/A quinoa
2 F 62 1.94E-31 N/A N/A cat
3 N 97 1.94E-31 N/A N/A eagle
Этот awk-скрипт использует два массива: один для отслеживания наибольшего значения $3 для каждого идентификатора ($1 ), а второй — для записи соответствующей входной строки.
После того, как все входные данные прочитаны и обработаны, он выводит строки в порядке id.
Строка NR==1 {print; next};
просто выводит первую (строку заголовка )дословно, а затем переходит к следующей строке ввода.
dd
это худший способ создания резервных копий:
В приведенных выше примерах зачем вообще его использовать?
cp /Volumes/bkp/d1.img.dd.gz /Volumes/bkp/$(date +"%Y-%m-%d")-d1-bkp.img.dd.gz
sudo gzip -c /Volumes/d1 > /Volumes/bkp/d1-bkp.img.dd.gz
sudo gzip -c /System/Volumes/Data > /Volumes/bkp/Sys-Vols-Data-bkp.img.dd.gz
Многие слишком часто используют dd
, когда они могут использовать исходное устройство напрямую, а последнее быстрее, потому что утилитам не нужно будет заполнять свои буферы, чтобы начать работу с данными.