如何像 man 的输出一样自动换行、对齐文本?

如何像 man 的输出一样自动换行、对齐文本?

word 换行并调整文本文件以使输出看起来像手册页的命令是什么:

   All of these system  calls  are  used  to  wait  for  state
   changes  in  a  child  of  the  calling process, and obtain
   information about the child whose  state  has  changed.   A
   state change is considered to be: the child terminated; the
   child was stopped by a signal; or the child was resumed  by
   a  signal.  In the case of a terminated child, performing a
   wait allows the system to release the resources  associated
   with the child; if a wait is not performed, then the termi-
   nated child remains in a "zombie" state (see NOTES below).

答案1

使用fold命令指定允许的最大宽度:

perl -e 'print "a"x5, " " for 1..99' | fold -w 30

你得到:(而不是一行)

aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa aaaaa 
aaaaa aaaaa aaaaa aaaaa 

答案2

如果您需要的只是调整文本而不需要将其写入roff,您可以使用par(不是标准命令,但它包含在大多数 Linux 发行版中)。

$ seq 120 | par -j -w40
1 2 3 4  5 6 7 8 9 10 11 12  13 14 15 16
17 18 19  20 21 22 23 24 25  26 27 28 29
30 31 32  33 34 35 36 37 38  39 40 41 42
43 44 45  46 47 48 49 50 51  52 53 54 55
56 57 58  59 60 61 62 63 64  65 66 67 68
69 70 71  72 73 74 75 76 77  78 79 80 81
82 83 84  85 86 87 88 89 90  91 92 93 94
95 96 97  98 99 100 101 102  103 104 105
106 107 108 109 110  111 112 113 114 115
116 117 118 119 120

请注意,既不证明fold也不fmt证明。par有很多选项来格式化评论、电子邮件、列表......

答案3

那就是格罗夫。
(较旧的 Unix 版本使用 NROFF 或 TROFF,但它们都是同一系列中的不同程序。)

请注意,这不是一个对文本文件进行操作的简单命令。它需要在文本中插入格式说明。
事实上,它的运行方式更像是一个编译器。
如果您熟悉 TeX 或 LaTeX,那么您就知道其原理,但是各种 ROFF 风格的程序都有更简单的命令语言。

答案4

FMT(1) 用户命令 FMT(1)

名称 fmt - 简单的最佳文本格式化程序

相关内容