sedを使って編集したファイルに出力した後、vi(catではなく)に^[[31m [^ [[m ^ [[31m"])]が表示されるのはなぜですか?

sedを使って編集したファイルに出力した後、vi(catではなく)に^[[31m [^ [[m ^ [[31m

私が使うとき

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

フォームの入力ファイルに

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

次の出力が表示されます。

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

しかし、viを使ってファイルを追加して> x編集すると、x

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

変える

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

どのはい出力をstdoutに送信したりcatviで編集したりせずにファイルを出力するとどうなりますか?catファイルとパイプをheadORに関連付けることができtail、出力は良好で、追加の文字はありません。

ソース .js ファイルを実行すると、これらの追加文字は表示されません。

ベストアンサー1

問題は、私のエイリアス猫を使用するときに特殊文字が追加されることです。

変える

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

使用

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

おすすめ記事