Mse*_*ade 7 sed awk text-processing text
所以我有一些输出有很长的行,我想将它格式化为不超过 80 列宽的行,但我不想拆分单词,因为它们在列限制内。
我试过
sed 's/.\{80\}/&\n/g'
Run Code Online (Sandbox Code Playgroud)
但是存在拆分单词并使某些行以空格开头的问题。
我设法用 Vim 做到了,设置textwidth
为 80,转到文件的开头并执行gqG
以格式化文本。但是¡宁愿去做sed
,awk
或者类似的东西,包括它的脚本。
cuo*_*glm 11
使用fmt
来代替:
fmt --width=80 file
Run Code Online (Sandbox Code Playgroud)
来自man fmt
:
-w, --width=WIDTH
maximum line width (default of 75 columns)
Run Code Online (Sandbox Code Playgroud)
tan*_*ius 11
使用fold
方法如下:
fold -s -w80 file
Run Code Online (Sandbox Code Playgroud)
这将仅在空格 ( -s
)处拆分,使用 80 个字符 ( -w80
)的行宽。所以它与fmt
解决方案完全相同,但它也允许在省略选项时在任何字符处中断-s
。