ubuntu 16.04 에서 watch 명령에 색상이 나오지 않는다. grep color
ubuntu 16.04 터미널에서 로그파일등에서 주요 키워드를 볼때 색상을 표시하고자 한다.
watch --color -n 10 \
'bash your-program-run.sh | \
GREP_COLOR="01;33" grep --color=always -i -e "Warnning.*" -e "^" | \
GREP_COLOR="01;35" grep --color=always -i -e "Fail.*" -e "^" | \
GREP_COLOR="01;31" grep --color=always -i -e "Alert.*" -e "^" \
'
프로그램 실행 명령이 출력으로 나올 때 grep 으로 색상을 표시한다. ( --color=always )
GREP_COLOR 로 키워드 별로 색상을 다르게 줄 수 있다.
(색상코드는 여기 참조 : https://chrisyeh96.github.io/2020/03/28/terminal-colors.html )
또한 -e ".*Keyword.*" 처럼 하면 해당 키워드가 나온 모든 줄이 되고, -e "Keyword" 를 하면 해당 키워드만 색상표시된다.
그런데, 문제는 watch 를 조합하면 색상 표시가 안된다.(우분투 16.04)
동일 명령을 ubuntu 22.04 에서는 정상으로 나온다.
터미널에서 색상코드(ansi code) 표시를 제대로 처리 못하는 것 같다.
우분투 16.04 의 watch 버전은 3.3.10 버전 ( 22.04 는 3.3.17 버전이다)
# 해결 방안
방법1. 정상동작 하는 터미널에서 원격으로 접속 명령을 내린다.
watch --color -n 10 'ssh {your-username}@{your-server} {원래 명령}'
위 처럼 해서 watch 가 색상코드를 정상적으로 처리하도록 한다.
방법2. watch 버전을 해결된 버전으로 소스 컴파일 한다.
위 방법이 뭔가 찜찜하다면, 소스를 직접 컴파일한다.
소스 : https://gitlab.com/procps-ng/procps/-/releases/v3.3.13
해당 릴리즈의 Changelog 를 보니
watch: Support ANSI 39,49 reset sequences issue #73
가 해당 버그인 듯 싶다.
암튼 소스를 받고 컴파일 한다.
wget https://gitlab.com/procps-ng/procps/-/archive/v3.3.13/procps-v3.3.13.tar.gz
tar xvzf procps-v3.3.13.tar.gz
cd procps-v3.3.13/
sudo apt install autoconf libtool autopoint libtool-bin ncurses-dev
./autogen.sh
./configure
make
설치는 make install 으로 하면 /usr/local/bin 으로 설치가 될 것이다.
그런데, 이 경우 watch 만 필요하니 $HOME/bin 디렉토리에 복사해서 사용했다.
정상적으로 색상이 나오는 것을 확인했다.
방법3. 상위버전 deb 패키지에서 watch 파일을 추출한다.
위 방법2 로 소스컴파일 하니, 문제는 한글이 watch 를 거치면서 사라져 버린다. ㅜㅜ
상위 deb 패키지에서 추출하기로 한다.(현버전 16.04 => 18.04 의 패키지)
상위버전 패키지 - https://launchpad.net/ubuntu/+source/procps/2:3.3.12-3ubuntu1.2/+build/17397008
procps_3.3.12-3ubuntu1.2_amd64.deb (219.4 KiB)
하단의 deb 파일을 다운로드
패키지를 설치하면 다른 이상이 있을 수 있으니, watch 실행파일만 추출한다.
(참조 : https://www.cyberciti.biz/faq/how-to-extract-a-deb-file-without-opening-it-on-debian-or-ubuntu-linux/ )
ar x procps_3.3.12-3ubuntu1.2_amd64.deb
tar xvJf data.tar.xz
cp usr/bin/watch $HOME/bin
이제 한글도 제대로 나온다.
'알아둘일' 카테고리의 다른 글
(미해결)플러터 - 안드로이드 에뮬레이터 이상 현상 (feat. emulator) (0) | 2024.05.29 |
---|---|
플러터 - android studio - jellyfish 업그레이드 후 빌드 에러 (0) | 2024.05.27 |
ubuntu 10.04 에서 재부팅시 딜레이 되는 현상 ( feat. mount nfs ) (0) | 2024.03.28 |
mac os + alacritty + byobu 조합의 단축키 와 설정 (0) | 2024.03.15 |
mac os 에서 byobu(tmux) 의 기본 쉘을 zsh 로 바꾸자 (0) | 2024.03.14 |
WRITTEN BY
- 1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.