Вы можете поместить dnf updateinfo list updates security
в цикл for в сценарии cli или bash.
I по-прежнему настоятельно рекомендую просмотреть обновления безопасности, но вы всегда можете разрешить добавить команду -y
для dnf update
. Это то, что у меня работает в зависимости от некоторых потребностей:
for i in $(dnf updateinfo list updates security | grep -Ei ^fedora | cut -d' ' -f3) ; do dnf update $i; done
Или немного короче с awk (имейте в виду, что это не работает с --refresh)
for i in $(dnf updateinfo list updates security | awk 'NR>1 {print $3}') ; do dnf update $i; done
для dnf --refresh
for i in $(dnf updateinfo list updates security| dnf updateinfo list updates security| awk 'NR>1 {print $3}') ; do dnf update $i; done
С sed
:
$ echo 12345 | sed 's/.\{4\}\(.\).*/\1/;q'
5
$ echo 1234ắ | sed 's/.\{4\}\(.\).*/\1/;q'
ắ
Обратите внимание, что sed
не сможет произвести вывод, если вы введете недопустимый multi -байтовые символы в текущей локали. Вы можете использовать LC_ALL = C
, если вы работаете только с однобайтовыми символами.
С файлом ASCII вы также можете использовать dd
:
$ echo 12345 | dd bs=1 skip=4 count=1 2>/dev/null
5
Если вам нужен 5-й байт, считая от 1:
dd ibs=1 skip=4 count=1
или
tail -c +5 | head -c 1
Обратите внимание, что хвост
отсчитывается от 1, поэтому для файла, содержащего abcdefg
, выводится e
.
dd
и tail -c
находятся в POSIX. head -c
распространен, но отсутствует в POSIX; это в GNU coreutils, BusyBox, FreeBSD и NetBSd, но не в OpenBSD или Solaris.
Или с использованием (gnu)grep:
grep -zoP '.{4}\K.' file
(-z
использовался для борьбы с n
до 5-го символа)