AWK解释示例

AWK解释示例,awk,gawk,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 '{ gs

我有一个文件:

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
为什么此命令不打印相同的结果

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

要使用
{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

您可以使用
fold
命令代替
awk

fold -w 5 input
或者,如果文件中没有输入:

echo 'AWK question about the example' | fold -w 5
两者都给出:


您可以但不可以回答OPs问题,为什么它不起作用。正确,但是每个问题都有一个正确的工具,您已经清楚地解释了这个问题。感谢您的澄清。+1另外,如果您升级到Gnu Awk版本4,则无需再指定
--re interval
。很好,但是它的可移植性会降低,因为大多数linux发行版仍然在Gawk3.xx上。不要问我为什么4.x已经存在了一段时间。你应该声明
--re interval
是正确的解决方案,而不是
--posix
,因为虽然两者都会启用re interval,但后者会禁用所有其他有用的gawk功能,例如
gensub()
@EdMorton感谢您的输入,我更新了我的答案以反映这一点。