Bash - 텍스트 파일(csv)의 첫 번째 줄을 굵게 인쇄합니다.

Bash - 텍스트 파일(csv)의 첫 번째 줄을 굵게 인쇄합니다.

다음과 같은 텍스트(csv) 파일이 있습니다.

Date:;Time:;Value:;
20181202;112044;38274658392;
20181207;121356;94843726283;
20181221;221012;93938272189;
20181230;071234;93736473783;
20190107;011022;27339393022;
20190112;042346;84739298321;

column -s';' -t file올바른 형식의 출력을 얻기 위해 사용하는 것 :

Date:     Time:   Value:
20181202  112044  38274658392
20181207  121356  94843726283
20181221  221012  93938272189
20181230  071234  93736473783
20190107  011022  27339393022
20190112  042346  84739298321

굵은 글씨로 텍스트 파일의 첫 번째 줄을 인쇄하는 쉬운 방법이 있습니까?

나는 그것이 tputbash와 함께 사용될 수 있다는 것을 알고 있습니다.

bold=$(tput bold)
reset=$(tput sgr0)

첫 줄의 시작과 끝 부분에 어떻게 추가하나요? sed지금 생각 중인데 ...

답변1

나는 awk이것을 사용할 수 있다고 생각합니다 :

column -s\; -t file | awk -v bld=$(tput bold) -v rst=$(tput sgr0) 'NR == 1{$0 = bld$0rst} 1'

그러면 열 출력의 첫 번째 행이 굵게 표시됩니다.

답변2

ANSI 이스케이프를 사용하는 또 다른 sed솔루션은 Stephen Harris의 정규식을 사용하는 것입니다.

<file sed "1s/\(.*\)/\x1b[1m\1\x1b[0m/" | column -s\; -t

ANSI 이스케이프에 사용되는 \x1b8진수의 16진수 값은 어디에 있습니까?\033

printf '\033[1m%s\033[0m\n' hello
# or
printf '\x1b[1m%s\x1b[0m\n' world

관련 정보