Fish-shell: A função sub / gsub / gensub de awk / gawk não funciona corretamente no FISH

Criado em 31 out. 2016  ·  3Comentários  ·  Fonte: fish-shell/fish-shell

  • [x] Você verificou se ocorre problema com peixes 2.3.1 ?
  • [] Experimentou peixes sem personalizações de terceiros (verifique sh -c 'env HOME=$(mktemp -d) fish' ) ?

versão fish instalada (2.3.1) :

SO / terminal usado :
Servidor Ubuntu 16.04

Fale sobre o problema aqui.
As subfunções awk ou gawk não funcionam corretamente. Os resultados são diferentes de awk em bash.

Etapas de reprodução

Em peixes, use o seguinte comando, não deu nada.

gawk 'BEGIN{a = "abc def"; b = gensub(/(.+) (.+)/, "\\2 \\1", "g", a); print b}'

No bash, o mesmo comando deu a saída correta def abc

question

Comentários muito úteis

O problema aqui é o "\" entre aspas. O peixe ainda removerá um dos dois, enquanto o bash o deixará. Veja você mesmo com, por exemplo, echo gawk ... .

Adicione mais um - "\\\2 \\\1" e funciona.

Acho que isso é esperado (existem outras diferenças no comportamento de citar, e muitas vezes com bons motivos), mas terei que consultar nossos documentos um pouco mais.

Todos 3 comentários

O problema aqui é o "\" entre aspas. O peixe ainda removerá um dos dois, enquanto o bash o deixará. Veja você mesmo com, por exemplo, echo gawk ... .

Adicione mais um - "\\\2 \\\1" e funciona.

Acho que isso é esperado (existem outras diferenças no comportamento de citar, e muitas vezes com bons motivos), mas terei que consultar nossos documentos um pouco mais.

Além disso, o que isso tem a ver com math ?

@faho Obrigado! Funciona!
Desculpe pela confusão de math que vem do modelo de problema.

Esta página foi útil?
0 / 5 - 0 avaliações