csvファイルを列に変換し、最初の行の各ラベルの下にダッシュを追加したいです(下線が引かれているため)。点線は各ラベルの長さと同じです(ラベルは複数の単語で構成できます)。
例は次のとおりです。
Full name age country
--------- --- -------
ベストアンサー1
ダッシュをどこに追加するかわからない。 「全体」と「名前」の間のスペースが列の区切り文字ではないかどうかはどうすればわかりますか?空白以外の各文字の下にダッシュを追加するには、次のawk one-linerを使用できます。
awk '{print} NR==1 {gsub(/[^\t ]/, "-"); print}'
タブではなく空白の下にダッシュを追加するには:
awk '{print} NR==1 {gsub(/[^\t]/, "-"); print}'
スペースを除くすべてのアイテムの下と個々のスペースの下にダッシュを追加するには、次の手順を実行します。
awk '{print} NR==1 {gsub(/[^ \t]/, "-"); while (sub(/- -/, "---")) {}; print}'