Fmt:重新格式化段落文本
fmt根据设定的字符数(默认为75个字符)填充和连接行,生成输出行。概要:
fmt [option]… [file]…
fmt从指定的文件参数中读取(如果没有给出文件,则从标准输入读取),并将结果写入标准输出。
零表示成功的退出状态,非零表示失败。
默认情况下,输出保留空白行、单词之间的空格和缩进;不会连接具有不同缩进的连续输入行;输入时展开制表符,输出时引入制表符。
fmt更倾向于在句子结尾处换行,并尽量避免在句子的第一个词之后或最后一个词之前换行。句子的分隔定义为段落的结束,或以'.?!'中的任意一个作为结尾的单词,后面跟着两个空格或行尾,不考虑其中的括号或引号。类似TeX,fmt在选择换行位置之前会先读取整个“段落”;算法是Donald E. Knuth和Michael F. Plass在“Breaking Paragraphs Into Lines”一文中提出的变种算法,发表于Software: Practice & Experience 11, 11(1981年11月),1119-1184页。
该程序接受以下选项。还请参阅通用选项。
'-c'
'--crown-margin'
冠式边距模式:保留段落中前两行的缩进,并使每个后续行的左边距与第二行对齐。
'-t'
'--tagged-paragraph'
标记段落模式:类似于冠式边距模式,但如果段落的第一行与第二行的缩进相同,则将第一行视为一个单行段落。
'-s'
'--split-only'
仅拆分行。不将短行连接成长行。这可以防止代码示例等“格式化”文本被错误地合并。
'-u'
'--uniform-spacing'
统一间距。将单词之间的间距减少为一个空格,并将句子之间的间距减少为两个空格。
'-width'
'-w width'
'--width=width'
将输出行填充至width个字符(默认为75个字符或目标值加10,如果提供了目标值)。
'-g goal'
'--goal=goal'
fmt最初尝试使行的宽度为goal个字符。默认情况下,这比width短7%。
'-p prefix'
'--prefix=prefix'
仅对以prefix(可能前面带有空格)开头的行进行格式化。对于格式化,将去除前缀和任何前置空白,并将其重新附加到每个格式化输出行上。一种用途是对特定类型的程序注释进行格式化,同时保持代码不变。