類似ファイルの最初の行の後に新しい行を挿入する方法

類似ファイルの最初の行の後に新しい行を挿入する方法

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}'

おすすめ記事