Как распечатать несколько выходных строк вместе из awk

Это можно сделать, установив пакет unattended-upgrades; см. его документацию для получения подробной информации о его конфигурации.

sudo apt install unattended-upgrades

установит его для вас.

Достаточно его установки, чтобы активировать его. Чтобы разрешить перезагрузку при необходимости, вам нужно будет добавить файл конфигурации, , например. /etc/apt/apt.conf.d/52unattended-upgrades-local, содержащий

Unattended-Upgrade::Automatic-Reboot "yes";

По умолчанию в Ubuntu устанавливаются любые обновления из основных репозиториев, независимо от того, связаны они с безопасностью -или нет. При необходимости вы можете настроить дополнительные репозитории, переопределив ключ конфигурации Unattended-Upgrade::Allowed-Origins.

0
09.05.2020, 12:45
2 ответа

Из показанного вами вывода hexdumpвидно, что в начале строк, содержащих нужные вам данные, есть два символа возврата каретки. Это будет первое поле в этих строках, если вы проанализируете данные с помощью awk. Оба варианта(sedиawk)ниже работают над этим, либо игнорируя (sed), либо избегая (awk).


Используя sedи предполагая, что строка с FUZZ:всегда стоит перед строкой сHOST::

$ sed -n '/.*FUZZ: /{ s///; h; }; /.*HOST: /{ s///; G; s,\n,/,p; }' file
https://test.com/index.jsp

Команда sed(, которая запускается с выводом каждой строки по умолчанию, отключенным с помощью -n), соответствует строке FUZZ:и удаляет все в ней до имени файла. Затем имя файла копируется в место для хранения с помощью h.

При совпадении строки HOST:начало этой строки также удаляется, а содержимое удерживаемого пространства добавляется к URL-адресу (оставшейся части строки HOST:). Новая строка, вставленная командой G, затем заменяется косой чертой, и результирующая строка печатается.


Используя awk, с тем же предположением, что и выше:

$ awk -v OFS='/' '/FUZZ:/ { fuzz = $NF } /HOST:/ { print $NF, fuzz }' file
https://test.com/index.jsp

Здесь переменная fuzzиграет роль пространства хранения, которое мы использовали в варианте sedвыше, то есть для хранения имени файла. $NF— это данные в последнем поле строки.

0
28.04.2021, 23:15

Я достигаю этого,

awk '/FUZZ:/{ FUZZ=$4; next } /HOST:/{ print $4 "/" FUZZ }'

ВЫХОД

https://test.com/index.jsp
-1
28.04.2021, 23:15

Теги

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