Eu tenho uma string e preciso adicionar #
, no começo, ou seja, converter [ -n "$ID" -a "$ID" -le 200 ] && return
para #[ -n "$ID" -a "$ID" -le 200 ] && return
. Eu posso usar o comando abaixo:
echo '[ -n "$ID" -a "$ID" -le 200 ] && return'| sed -n -e 's/\[ -n "$ID" -a "$ID" -le 200 \] && return/#&/p'
Funciona. Agora eu tenho duas perguntas, em relação ao E
, flag.
Para a string
[ -n "$ID" -a "$ID" -le 200 ]
, se eu escapar de colchetes, não funciona; no entanto, funciona quando eu não escapo deles, ou sejased -n -E 's/[ -n "$ID" -a "$ID" -le 200 ]/#&/p'
funciona enquanto
sed -n -E 's/\[ -n "$ID" -a "$ID" -le 200 \]/#&/p'
não funciona.
Pois, a string completa
[ -n "$ID" -a "$ID" -le 200 ] && return
, me dá uma resposta errada, quando não escapo deles:echo '[ -n "$ID" -a "$ID" -le 200 ] && return'| sed -n -E 's/[ -n "$ID" -a "$ID" -le 200 ] && return/#&/p'
Ele me dá saída:
[ -n "$ID" -a "$ID" -le 200 #] && return
Eu quero saber como está funcionando.