AWK解释示例

时间:2014-01-24 08:04:35

标签: awk gawk

我有一个文件:

AWK question about the example

此命令效果很好:

awk  '{ gsub(/...../, "&\n" ) ; print}' file
AWK q
uesti
on ab
out t
he ex
ample

为什么此命令不会打印相同的结果?

awk  '{ gsub(/.{5}/, "&\n" ) ; print}' file
AWK question about the example

为什么此命令不会打印相同的结果?

awk -v WIDTH=5 '{ gsub(".{"WIDTH"}", "&\n"); print }' file
AWK question about the example

2 个答案:

答案 0 :(得分:7)

要使用{5},您需要启用re-interval,如下所示:

awk --re-interval '{ gsub(/.{5}/, "&\n" ) ; print}' file
awk -v WIDTH=5 --re-interval '{ gsub(".{"WIDTH"}", "&\n"); print }' file

你也可以使用--posix,但它会禁用awk中的其他功能

awk -v WIDTH=5 --posix '{ gsub(".{"WIDTH"}", "&\n"); print }' file

答案 1 :(得分:5)

您可以使用fold命令代替awk

fold -w 5 input

或者如果您没有文件中的输入:

echo 'AWK question about the example' | fold -w 5

两者都给:

AWK q
uesti
on ab
out t
he ex
ample