Por que o vi (mas não o cat) mostra ^ [[31m [^ [[m ^ [[31m "depois que eu uso o sed e a saída para um arquivo que eu edito? [fechado]

1

Quando uso

cat Variables/user-extensions.js | sed -e 's/css/XXX/'

em um arquivo de entrada do formulário

storedVars["css_body"] = "css=body";
storedVars["css_main"] = "css=main";

Eu vejo saídas como

storedVars["XXX_body"] = "css=body";
storedVars["XXX_main"] = "css=main";

No entanto, se eu adicionar > x e, em seguida, usar o vi para editar o arquivo x que eu vejo

storedVars^[[31m[^[[m^[[31m"XXX_body"^[[m^[[31m]^[[m ^[[31m=^[[m ^[[31m"css=body"^[[m^[[31m;^[[m
storedVars^[[31m[^[[m^[[31m"XXX_main"^[[m^[[31m]^[[m ^[[31m=^[[m ^[[31m"css=main"^[[m^[[31m;^[[m

em vez de

storedVars["XXX_body"] = "css=body";
storedVars["XXX_main"] = "css=main";

qual é o que eu recebo se eu deixar a saída ir para a saída padrão, ou se eu apenas cat o arquivo de saída e não editá-lo com o vi. Eu posso cat o arquivo e pipe para head ou tail e a saída é normal, sem caracteres extras.

Se eu vi o arquivo .js de origem, não vejo esses caracteres extras.

    
por Michael Durrant 20.09.2015 / 16:01

1 resposta

0

O problema está em usar o meu gato com alias que adiciona os caracteres especiais.

Em vez de

cat Variables/user-extensions.js | sed -e 's/css/XXX/' > x

use

sed 's/css/XXX/' Variables/user-extensions.js > x
    
por 20.09.2015 / 16:16