如何用awk增加文本文件中列之间的空间?

时间:2012-08-11 10:46:53

标签: awk

如何使用awk增加文本文件中列之间的空间?

3 个答案:

答案 0 :(得分:0)

最简单的方法可能是使用格式宽度说明符。这取决于您的数据。

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

上面的%9告诉awk在9个字符宽的空间中打印每个字段。如果数据超过9个字符,awk将使用所需的空间。

printf()非常灵活。例如,对于包含四个字段的输入文件,您可以执行以下操作来控制输出格式。

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

Format width in GNU gawk

答案 1 :(得分: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

答案 2 :(得分: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