【发布时间】:2015-03-04 12:43:44
【问题描述】:
我有一个文件,我需要在 bash 脚本中将每一行用空格填充到大约 1100 个字符。文件中的每一行目前有 900 个字符。
这样做的自然方法是
awk -F, '{printf("%-1100s\n",$0)}' src.txt > dst.txt
但是,我收到一个错误提示
awk: formatted string too long
record number 1
经过网上的一些实验和搜索,我确定格式化字符串awk可以处理的最大行长是1024。
有没有更好的方法来解决这个限制?
(注意:我在 SunOS 5.10 上运行,无法向其中添加 GNU 工具等)
【问题讨论】:
-
即使使用 BSD awk 也无法重现
-
试试
while read line; do printf "%1100s\n" $line; done < src.txt > dst.txt -
n.b.,更改为左对齐并在右侧填充