tail -f 이후에 텍스트를 수정하고 있습니다.
파일을 모니터링하는 다음 프로그램이 있습니다.
tail -vf -c5 /tmp/index \
| cat -n \
| sed s/^[^0-9]*\\\([0-9]\\\)/__\\\1__/g - \
;
sed가 tail의 출력을 성공적으로 변경했습니다.
이제 다른 터미널에서 다음을 수행할 수 있습니다.
RED='\033[0;31m';
NC='\033[0m';
printf "I ${RED}love${NC} Stack Overflow\n" 1>>/tmp/index;
테일 모니터에 업데이트가 색상으로 표시됩니다.
하지만 내가 원하는 것은 출력물에 자체적으로 색상을 추가할 수 있는 sed 프로그램입니다. 다양한 설정을 시도했지만 아무것도 작동하지 않습니다. 주로 여기 저기에 백슬래시를 추가하는 작업이 포함됩니다.
출력에 색상을 추가하는 tail-sed 프로그램을 어떻게 가질 수 있습니까?
답변1
몇 년 전에 나는 정규식 입력을 기반으로 색상을 추가하는 작은 스크립트를 작성했습니다. 예전에 포스팅한 적이 있어요여기. color
디렉터리에 지정된 파일 에 스크립트를 붙여넣고 $PATH
실행 가능하게 만들면 다음을 수행할 수 있습니다.
tail -vf -c5 /tmp/index |
cat -n |
color -l '^\s*\d+'
또는 더 수동적으로:
tail -vf -c5 /tmp/index |
cat -n |
perl -pe 's#^.*?\d+#\x1b[31m$&\x1b[0m#;'
또는 sed
:
tail -vf -c5 /tmp/index |
cat -n |
sed -E 's#^[^0-9]*[0-9]*#\x1b[31m&\x1b[0m#;'
아니면 Perl에서 모든 작업을 수행할 수도 있습니다.
tail -vf -c5 /tmp/index |
perl -pe 's#^#\x1b[31m $. \x1b[0m#;'
답변2
tail whatever | cat -n | grep -E '^[ 0-9]+' --color
줄 번호가 색칠됩니다.