РЕДАКТИРОВАТЬ: Чтобы охватить все вхождения, попробуйте следующее.
awk 'BEGIN{OFS=": "}{val=$0;gsub(/\./,"_");print val,$0;val=""}' Input_file
Для предоставленных OP сэмплов вывод будет следующим:
destination.workload.namespace: destination_workload_namespace
Объяснение:
awk ' ##starting awk program from here.
BEGIN{ ##Starting BEGIN section from here.
OFS=": " ##setting OFS as colon space here.
}
{
val=$0 ##creating variable val whose value is current line value.
gsub(/\./,"_") ##globally substituting dot with underscore.
print val,$0 ##printing variable val and edited line here.
val="" ##Nullify Val here.
}
' Input_file
Не могли бы вы попробовать следующее.
awk 'BEGIN{FS=".";OFS=": "} {print $1"_"$2,$0}' Input_file
Использование sed
: использование возможности хранения sed сопоставил значение регулярного выражения во временном буфере и позже использовал их по мере необходимости.
sed 's/\([^.]*\)\.\(.*\)/\1_\2: \1.\2/' Input_file