Вот вариант вашего скрипта в виде «однострочного»:
gunzip -c /var/log/cisco/cisco.log-$(date +%Y%m%d).gz | \
grep "Virtual device ath0 asks to queue packet" | \
awk '{print $4}' | sort | uniq | wc -l
Он позволяет избежать создания любых промежуточных временных файлов, которые могут будь быстрее. Однако, если у вас была потребность или использование этих промежуточных файлов, однострочный вариант - худшее направление.
Одна из вещей, которую я узнал, прочитав достаточно хорошо написанных сценариев оболочки, заключалось в том, что последовательность «grep | awk» часто можно комбинировать. Обратите внимание, что в вашем сценарии команда grep была заменена:
gunzip -c /var/log/cisco/cisco.log-$(date +%Y%m%d).gz | \
awk '/Virtual device ath0 asks to queue packet/ { print $4 }' | \
sort | uniq | wc -l
Вы попробовали то, что было предложено? то есть libncurses-dev
или ncurses-devel
? Нетlibncurses5-dev
Какой дистрибутив/версию вы используете?
Похоже, libncurses-dev
— это виртуальный пакет, который вызывает libncurses5-dev
в Ubuntu 16.04. В Fedora 28 доступно ncurses-devel
в репозитории обновлений.
Чтобы установить libncurses5-dev
, у вас должна быть следующая строка в вашемsources.list
(из комментария):
deb http://deb.debian.org/debian/ stretch main
Выполнить:
# echo deb http://deb.debian.org/debian/ stretch main >> /etc/apt/sources.list
# apt update
# apt install libncurses5-dev