Text-Processing
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
有沒有一種簡單的方法可以用粗體字母列印文本文件的第一行?
我知道可以
tput
與 bash 一起使用:bold=$(tput bold) reset=$(tput sgr0)
如何將其添加到第一行的開頭和結尾?我
sed
此刻在想…
我想你可以用
awk
這個:column -s\; -t file | awk -v bld=$(tput bold) -v rst=$(tput sgr0) 'NR == 1{$0 = bld$0rst} 1'
這將使列輸出的第一行變為粗體
另一個使用
sed
和 ANSI 轉義的解決方案使用 Stephen Harris 的正則表達式:<file sed "1s/\(.*\)/\x1b[1m\1\x1b[0m/" | column -s\; -t
其中
\x1b
是八進制的十六進制值,\033
用於 ANSI 轉義,如printf '\033[1m%s\033[0m\n' hello # or printf '\x1b[1m%s\x1b[0m\n' world