AWK:有没有办法限制输出字段的宽度?

我需要限制一个字段的最终大小为2048.我可以使用:

ACTION_PARAMETER=substr($2,1,2048); 

但有没有更好的办法?

你可以使用printf

 printf "%.2048s\n", $2 

备选方法:

 printf "%.2048s", $2 

你可以使用字段分隔符FS作为"" ,然后限制字段数NF

 awk 'BEGIN{FS=OFS=""} NF=2048' file 

以3而不是2048为例

 $ cat a hello how are you i am ok $ awk 'BEGIN{FS=OFS=""} NF=3' a hel how you ia 

甚至作为一个参数:

 $ awk -v limit=2 'BEGIN{FS=OFS=""} NF=limit' a he ho yo i 

如何本地bash参数切片

 printf "%s" ${2:0:2048}