如何使用 awk 增加文本文件中列之间的空间?
问问题
3707 次
3 回答
0
最简单的方法可能是使用格式宽度说明符。这取决于您的数据。
{
for (i = 1; i <= NF; i++) {
printf("%9s ", $i);
}
printf("\n") ;
}
上面告诉 awk在%9
9 个字符宽的空间中打印每个字段。如果数据的宽度超过 9 个字符,awk 将根据需要使用尽可能多的空间。
printf()
非常灵活。例如,对于具有四个字段的输入文件,您可以执行以下操作来控制输出格式。
printf("%d %9s $d: %s\n", $1, $2, $3, $4);
于 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 回答