sed를 사용하여 esc 시퀀스(\033[K)를 추가하세요.

sed를 사용하여 esc 시퀀스(\033[K)를 추가하세요.

각 줄 끝에 이스케이프 문자(tty 컨트롤)를 추가하고 싶습니다.

sed '/s/$/foo/g'foo줄 끝에 추가합니다 . esc[K줄 끝에 추가하고 싶습니다 (줄 끝까지 지우기) 해보았습니다

sed 's/$/\033[K/g'
sed 's/$/\\033[K/g'
sed 's/$/\e[K/g'
sed 's/$/\\e[K/g'

둘 다 이스케이프 문자를 생성하지 않고 내가 입력한 내용만 인쇄합니다.

sed에서 이스케이프 문자를 얻는 방법은 무엇입니까?

답변1

문자열을 이스케이프해 보세요.

sed $'s/$/\033[K/g'

$'…'작은따옴표로 묶인 문자열에서 이스케이프 문자를 처리하도록 쉘에 지시합니다.

더 나은 접근 방식은 추가하는 것입니다.EOL로 클리어터미널에 쓰는 경우에만:

test -t 1 && el=$(tput el)
sed 's/$/'"$el/"

도중에 인용 스타일을 전환했다는 점에 유의하세요. 이는 해당 값(있는 경우)을 확장 $하는 동시에 리터럴로 유지하는 데 도움이 됩니다. $el우리는 또한 사용할 수 있습니다"s/\$/$el/"

관련 정보