Não tenho certeza absoluta do que você está tentando fazer com sed . É isso que você está procurando?
printf "\x27 \x60\n"
# prints
# ' '
printf "%x %x\n" "''" "'\'"
# prints
# 27 60
Extraído de BashFAQ 071
Editar
sed está perfeitamente bem com ' ou ' em seu regex. Onde você está encontrando problemas é obter esses caracteres através do interpretador de shell, já que tanto aspas simples quanto backtick têm um significado especial para o shell, e devem ser citadas se forem feitas para sed sem bash jogando um erro de sintaxe ou desconfigurando a entrada.
Existem três formas de citar caracteres especiais: aspas simples ' , aspas duplas " e aspas invertidas \ . Todos eles se comportam de maneira um pouco diferente. ' cita tudo, exceto ele mesmo, portanto, você pode usar isso para citar ' , mas não ' . " cita tudo, exceto \ , ' e $ (irrelevante aqui), então você pode usar " para citar ' , mas não ' . \ cita tudo para que você possa usar isso para ambos. É possível aninhar esses métodos desde que você mantenha as regras de cotação em linha reta (elas são interpretadas da esquerda para a direita).
Para tornar as coisas mais concretas, suponha que você queria s/''/replacement/ em sua sed regex. Existem muitas maneiras de fazer isso. Dois exemplos diferentes são dados abaixo.
# concatenation of single-quoted s/', backslash-quoted ', and
# single-quoted remainder of the command
sed -e 's/''\''/replacement/'
# one double-quoted string quotes the single-quote, but an
# additional backslash is needed to quote the backtick
sed -e "s/\''/replacement/"
Apenas mantenha as regras de cotação em mente e use a versão mais legível para realizar o trabalho. Veja a seção QUOTING no manual bash para uma explicação completa e referência.
Como nota final, eu evitaria usar as saídas especiais \d , \x , \o etc. porque
- São extensões GNU para
sed, que podem ser menos portáteis do que padrões adequadamente citados. - É um pouco mais difícil de ler. Quantas pessoas sabem os valores ASCII para
'e'do topo de suas cabeças?