次のテキスト(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
ANSIエスケープを使用する別のsed
解決策は、Stephen Harrisの正規表現を使用することです。
<file sed "1s/\(.*\)/\x1b[1m\1\x1b[0m/" | column -s\; -t
ANSIエスケープに使用される\x1b
8進数の16進値はどこにありますか?\033
printf '\033[1m%s\033[0m\n' hello
# or
printf '\x1b[1m%s\x1b[0m\n' world