0

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

4

3 回答 3

0

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

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

上面告诉 awk在%99 个字符宽的空间中打印每个字段。如果数据的宽度超过 9 个字符,awk 将根据需要使用尽可能多的空间。

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

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

GNU gawk 中的格式宽度

于 2012-08-11T11:04:22.617 回答
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

这可能对您有用:

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 回答