Sed
為什麼 vi(但不是 cat)在我使用 sed 並輸出到我然後編輯的文件後顯示 ^[[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";
但是,如果我添加
> x
然後使用 vi 編輯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";
如果我讓輸出轉到標準輸出,或者我只輸出文件而不用 vi 編輯它,這就是我得到的。
cat
我可以cat
將文件和管道傳輸到head
ortail
並且輸出正常,沒有多餘的字元。如果我 vi 源 .js 文件,我看不到這些額外的字元。
問題在於使用我的別名貓,它添加了特殊字元。
代替
cat Variables/user-extensions.js | sed -e 's/css/XXX/' > x
採用
sed 's/css/XXX/' Variables/user-extensions.js > x