简单的格式化文本
fmt [option] [file-list]
fmt通过将所有非空白行的长度设置为几乎相同,来进行简单的文本格式化
选项
-s 截断长行,但不合并
-t 除每个段落的第1行外都缩进
-u 改变格式化,使字之间出现一个空格,句子之间出现两个空格
-w n 将输出的行宽改为n个字符。不带该选项时,fmt输出的行宽度为75个字符
虽然一些fmt的实现有较多的选项可用,但其实我们发现只有两种较常用到:-s仅切割较长的行,但不会将短行,而-w n则设置输出行宽度为n个字符(默认75个左右)。
下面以拼音字典为例:
字典文件:/usr/dict/words或者/usr/share/dict/words。
sed -n -e 9991,10010p /usr/share/dict/words | fmt
Merak's Mercado Mercado's Mercator Mercedes Mercer Mercer's Mercia Merck
Merck's Mercuries Mercurochrome Mercurochrome's Mercury Mercury's Meredith
Merino Merle Merle's Merlin
sed -n -e 9991,10010p /usr/share/dict/words | fmt -w 30
Merak's Mercado Mercado's
Mercator Mercedes Mercer
Mercer's Mercia Merck Merck's
Mercuries Mercurochrome
Mercurochrome's Mercury
Mercury's Meredith Merino
Merle Merle's Merlin
仅作切割的选项: -s , 在你想将长的行绕回,短的行保持不动时很好用,这么做也能使结果与原始版本间的差异达到最小:
fmt -s -w 10 << END_OF_DATA
> one two three four five
> six
> seven
> eight
> END_OF_DATA
one two
three
four five
six
seven
eight