Попробуйте изменить вот так
for host in $(cat /etc/hosts | grep text | cut -d' ' -f 1 | sort -u); do
ssh $host \
"sudo sed -i \"s/enabled = 1/enabled = 0/\" /etc/yum.repos.d/testing.repo"
done
Инструменты общего назначения -, упомянутые в ответе, на который ссылается @SteelDriver, очень подходят, как и ответ @glenn jackman.
Однако, если ваши данные отформатированы так же просто, как вы указываете --то есть, если в string1.. stringN
кусках --нет пробелов, то за счет двойного чтения вашего входного файла вы также можете сделать это:
dsk -file <filename> | grep -Ei 'string1|string2|string3' > tempfile.txt
readarray labels < <(awk '{print $1}' tempfile.txt)
readarray values < <(awk '{print $2}' tempfile.txt)
printf '%s\t' ${labels[@]}
printf '\n'
printf '%s\t' ${values[@]}
printf '\n'
Такое форматирование может быть несколько упрощенным и, в частности, может не выравнивать записи так хорошо, как хотелось бы. Но если все, что вам нужно, это вывод с разделителями табуляции -, он сделает это.