Você pode usar & na substituição para se referir ao texto correspondente :
$ awk '{gsub(/[[{|]/, "\\&", $0); print}' <<<"abc { | [ def"
abc \{ \| \[ def
Isso é apenas uma classe de caractere [...] regular com [ , | e { no padrão e uma barra invertida com escape suficiente seguida por & na substituição. Você precisa de todos eles.
Para padrões mais complexos o gawk tem uma função gensub que permite fazer referências a parte do texto, como \1 , mas você não precisa disso aqui. Todos os awk s compatíveis com POSIX suportam o comportamento & para incluir toda a subsequência correspondente na substituição.