Использование AWK с отдельным файлом со списком имен для добавления:
#!/usr/bin/awk -f
BEGIN { FS = "\t"; OFS = FS; idx = 0 }
FNR == NR { names[NR] = $0 }
FNR < NR && $1 == 1 { idx++ }
FNR < NR { $(NF + 1) = names[idx]; print }
Это настраивает AWK на использование табуляции в качестве разделителей полей для ввода и вывода. Предполагается, что первый файл содержит добавляемые имена; это читается в массив names
. Когда мы переходим к файлам после первого, мы добавляем текущее имя в конец строки после проверки, равно ли первое поле 1, и увеличиваем индекс массива, если это так.
Без отдельного списка имен:
#!/usr/bin/awk -f
BEGIN { FS = "\t"; OFS = FS; idx = 0 }
$1 == 1 { idx++ }
{ $(NF + 1) = sprintf("Replicate_%c", 64 + idx); print }
В обоих случаях обработка ошибок отсутствует. В первом варианте, когда у вас закончатся имена, вместо них будет использоваться пустая строка. Во втором вы изучите набор символов после Z...
У вас две проблемы:
Используйте следующую команду для устранения проблемы:
wget -q -O - https://archive.kali.org/archive-key.asc |sudo apt-key add
sudo apt update
sudo apt upgrade
sudo apt install terminator