BSD sed(또는 기타 도구)를 사용하여 OS X에서 색상 제거

BSD sed(또는 기타 도구)를 사용하여 OS X에서 색상 제거

sed나는 BSD 버전 (Linux의 GNU 버전만큼 좋지는 않은 것 같습니다)이 있는 OS X를 사용하고 있습니다 .commandlinefu.com의 모든 색상 제거 기술작동 안함. -rOS X에는 없는 스위치를 교체해 보았 -e으나 소용이 없었습니다.

OS X에서 색상 형식 코드를 제거하는 확실한 방법이 있습니까? 색상 출력을 제거하기 위해 실행 중인 명령은 다음과 같습니다.

for concurrency in $(seq 1 50); do siege -f urls.txt -c $concurrency -t 5m >> results.csv ; done

sed다음은 CSV 출력에서 ​​색상을 제거하려는 예입니다.

for concurrency in $(seq 1 50); do siege -f urls.txt -c $concurrency -t 5m | sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" >> results.csv ; done

답변1

Bash의 경우 sed에 적절한 매개변수를 전달해야 한다고 생각합니다.

sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g'

또는 다른 쉘로 더 쉽게 이식하려면 다음을 시도해 볼 수 있습니다.

sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g"

Ctrl-vEsc아니면 input 대신 input 을 통해 이스케이프된 바이트를 문자열에 직접 넣으세요 \x1b.

하지만 이 sed 문은 색상 코드 그 이상을 제거하므로 CSI로 시작하는 많은 제어 시퀀스와 일치할 수 있습니다. 페이지에서 "CSI"를 검색하세요.이것제거(또는 파괴)할 다른 제어 시퀀스가 ​​무엇인지 이해합니다.

관련 정보