각 행의 첫 번째 부분에 색상을 지정합니다.

각 행의 첫 번째 부분에 색상을 지정합니다.

다음과 같은 채팅 기록이 있습니다.

(15:12:56) rubo77: mist migration
(15:05:22) hans: ist hugo da?
(15:36:13) rubo77: test
(13:30:15) rubo77: what are the access data?
(15:06:38) [email protected]: user :  [email protected] (https://somewhere.de:8080/index.php#)
(15:06:38) [email protected]: password :  test

sed사용자 이름을 다른 색상으로 바꾸려면 어떻게 해야 합니까 ?

아니면 이것보다 더 간단한 도구가 있습니까 sed?

답변1

다음을 사용할 수 있습니다.

sed 's/) \(.*\):/) \x1b[31m\1\x1b[0m:/'

예를 들어:

cat 1| sed 's/) \(.*\):/) \x1b[31m\1\x1b[0m:/'

버전 2:

COLOR=32
sed 's/) \(.*\):/) \x1b['${COLOR}'m\1\x1b[0m:/'

색상번호를 변경할 수 있습니다.

버전 3:

COLOR=32
sed 's/) \([[:alpha:][:digit:][:space:]@\.]*\):/) \x1b['${COLOR}'m\1\x1b[0m:/1'

답변2

awk가장 단순해야 합니다.

awk '{$2="\033[01;31m"$2"\033[00m"; print $0}' logfile

답변3

ccze를 사용하여 출력에 색상을 지정할 수 있습니다 .

이 상황에 최적화되어 있지는 않지만 좋은 패턴을 많이 제공합니다.

답변4

글쎄, 당신이 원하는 것(다중 사용자 색칠)은 가능하지만 완전히 간단하지는 않습니다.

요청된 작업을 수행하기 위해 매우 긴 sed 표현식을 생성할 수 있습니다 ;. 이것이 바로 이 쉘 스크립트가 수행하는 작업이며 클러스터에서 사용되는 활동을 나타냅니다. http://fotis.web.cern.ch/fotis/QTOP/
(스크린샷의 마지막 부분은 설명된 사용 사례의 인스턴스를 보여줍니다.)
아이디어는 qtop.colormap을 구문 분석하고 이를 sed 표현식으로 컴파일한 다음 사용하는 것입니다.

경고: 쉘 스크립트와 깊은 sed 표현의 사용으로 인해 소프트웨어 엔지니어링 측면에서 유지 관리가 매우 열악합니다. 하지만 물론 할 수 있습니다.

관련 정보