Не могли бы вы попробовать следующее (проверено на показанных образцах и в среде BASH).
awk 'match($0,/uuid=[^ ]*/){print substr($0,RSTART+5,RLENGTH-5)}' Input_file
Решение 2-е: В случае, если ваш uid
являетсябез пробела используйте следующее.
awk '{sub(/.*uuid=/,"");sub(/ .*/,"")} 1' Input_file
решение 3-е: с использованием sed
может помочь вам (учитывая, что у uid нет свободного местав его значениях).
sed 's/\(.*uuid=\)\([^ ]*\)\(.*\)/\2/' Input_file
Решение четвертое: с использованием метода разделения полей awk
для показанных образцов.
awk -F'uuid=| cp' '{print $2}' Input_file
Кобъединить все значения в переменную оболочки, используя следующую команду:
shell_var=$(awk 'match($0,/uuid=[^ ]*/){val=val?val OFS substr($0,RSTART+5,RLENGTH-5):substr($0,RSTART+5,RLENGTH-5)} END{print val}' Input_file)