각 줄 끝에 이스케이프 문자(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/"