因此,我有一些行很长的输出,我希望将其格式化为行宽不超过 80 列,但我不想拆分单词,因为它们在列限制内。
我试过
sed 's/.\{80\}/&\n/g'
但存在拆分单词并使某些行以空格开头的问题。
我设法用 Vim 做到这一点,设置textwidth
为 80,转到文件的开头并执行gqG
格式化文本。但是 ¡ 宁愿使用sed
,awk
或类似的东西来将其包含在脚本中。
答案1
使用fold
方法如下:
fold -s -w80 file
这只会在空格 ( -s
) 处分割,使用 80 个字符的行宽 ( -w80
)。所以它的作用与解决方案完全相同fmt
,但它也允许中断任何省略选项时的字符-s
。
答案2
改用fmt
:
fmt --width=80 file
从man fmt
:
-w, --width=WIDTH
maximum line width (default of 75 columns)
答案3
下面提到的解决方案可能会有所帮助:
猫 文件名.txt | fmt -w 80 > 缩减文件名.txt
fmt - 简单的最佳文本格式化程序。