我有一个像这样的文本(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
有没有一种简单的方法可以用粗体字母打印文本文件的第一行?
我知道可以tput
与 bash 一起使用:
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
另一个使用sed
ANSI 转义的解决方案是使用 Stephen Harris 的正则表达式:
<file sed "1s/\(.*\)/\x1b[1m\1\x1b[0m/" | column -s\; -t
其中是ANSI 转义中使用的\x1b
八进制的十六进制值,例如\033
printf '\033[1m%s\033[0m\n' hello
# or
printf '\x1b[1m%s\x1b[0m\n' world