0

awkを使用してテキストファイルの列間のスペースを増やすにはどうすればよいですか?

4

3 に答える 3

0

これはあなたのために働くかもしれません:

cat <<\! >file
> a b c d
> w x y z
> !
cat file
a b c d
w x y z
awk -v OFS='     ' '{$1=$1};1' file
a     b     c     d
w     x     y     z
于 2012-08-11T14:03:56.887 に答える
0

出力をよりきれいにしようとしている場合は、次を使用しますcolumn

$ printf "%s %s %s\n" one two three four five six seven eight nine
one two three
four five six
seven eight nine

$ printf "%s %s %s\n" one two three four five six seven eight nine | column -t
one    two    three
four   five   six
seven  eight  nine
于 2012-08-11T12:43:05.837 に答える
0

最も簡単な方法は、フォーマット幅指定子を使用することです。それはあなたのデータに依存します。

{ 
    for (i = 1; i <= NF; i++) {
        printf("%9s  ", $i);
    }
    printf("\n") ;
}

上記%9は、各フィールドを 9 文字幅のスペースに出力するように awk に指示しています。データが 9 文字を超える場合、awk は必要なだけのスペースを使用します。

printf()非常に柔軟です。たとえば、4 つのフィールドを持つ入力ファイルの場合、次のようにして出力形式を制御できます。

printf("%d   %9s        $d:    %s\n", $1, $2, $3, $4);

GNU gawk のフォーマット幅

于 2012-08-11T11:04:22.617 に答える