스크립트를 사용하는 동안 색상 끄기(1)

스크립트를 사용하는 동안 색상 끄기(1)

script(1)을 사용하는 동안 색상을 끄는 방법이 있습니까? 내 스크립트 파일은 ls와 같은 명령의 색상과 관련된 불필요한 정보로 채워져 있습니다. 이 정보는 vim 및 gedit와 같은 텍스트 편집기를 사용할 때만 표시됩니다. 검색 및 교체를 수행하려는 것이 아니라 문제가 발생하기 전에 중지하는 것입니다. 기본적으로 ^M 줄 바꿈 문자도 제거하는 방법이 있습니까?

샘플 스크립트 파일을 포함했습니다.

Script started on Mon 05 May 2014 10:58:33 PM ADT                               
^M^M                                                                            
$ ls^M                                                                          
^[[0m^[[01;34mBin^[[0m  ^[[01;34mDesktop^[[0m  ^[[01;34mDocuments^[[0m  ^[[01;34mDownloads^[[0m  examples.desktop  ^[[01;34mMusic^[[0m  ^[[01;34mPictures^[    [0m  ^[[01;34mPublic^[[0m  ^[[01;34mTemplates^[[0m  test.txt  ^[[01;34mVideos^[[0m^M
^M^M                                                                            
$ exit^M                                                                        
exit^M                                                                          

Script done on Mon 05 May 2014 10:58:50 PM ADT

이것이 내가 찾고 있는 것입니다:

$ script test.txt
Script started, file is test.txt

$ ls
Bin  Desktop  Documents  Downloads  examples.desktop  Music  Pictures  Public  Templates  test.txt  Videos

$ exit
exit
Script done, file is test.txt

답변1

적어도 ls의 경우에는 사용할 수 있습니다

ls --color=never

답변2

테스트했지만 명령, 명령 프롬프트 자체 등과 같은 가능한 모든 색상 소스를 추적해야 한다는 것을 깨달았습니다. 이것은 sed 필터입니다.commandlinefu.com그것을 통해 무엇이든 파이프하면 훌륭하게 작동합니다. 물론 다음과 같이 파이프된 출력을 저장할 수 있습니다.

cat test.txt | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" > new-test.txt

관련 정보