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

관련 정보