Eu quero escapar da barra invertida \b
para que eu possa processá-la mais tarde normalmente. Até agora eu uso um comando que retorna resultado separado por tab que converte nulos \N
também (para mysql load into
):
PGPASSWORD=$PASS psql -qtAX -U $USER -h $HOST -p $PORT -d $DB -AF $'\t' -P 'null=\N'
Alguma ideia?
Se estou entendendo sua pergunta...
psql
oferece opções para formatar sua saída (por exemplo, como delimita colunas e linhas, como apresenta valores nulos, se inclui um rodapé, se apresenta apenas tuplas, se apresenta usando seu formato expandido, etc.); no entanto , não acredito que ele ofereça opções para codificar, escapar ou processar dados em nível de linha/campo, como substituir barras invertidas em dados armazenados.Para realizar o que você parece estar tentando realizar, acredito que você precisaria usar uma função SQL como
replace
ouregexp_replace
, ou precisaria pós-processar sua saída (por exemplo, usandosed
).Vários pensamentos vagamente relacionados:
\b
, pois\b
geralmente denota um backspace em codificações de barra invertida.PGPASSWORD
(ePASS
) usar, pois pode estar expondo sua senha a outros usuários, conhecidos ou não (já que as variáveis de ambiente podem ser extraídas).PGHOST
,PGPORT
,PGUSER
, etc. pode valer a pena conferir como possíveis alternativas para especificá-lospsql
(não é um pensamento muito importante, embora seja interessante para você).PS Obrigado por postar sua pergunta... Muitas ótimas
psql
opções lá.