EDA365电子论坛网
标题:
Linux fmt命令
[打印本页]
作者:
ubeautqq
时间:
2021-9-22 14:12
标题:
Linux fmt命令
8 Q; C4 z& x) q' b; j; O
Linux fmt命令用于编排文本文件。
! F! V3 m/ J) a
6 b. y6 K% z% Q5 j* k
fmt指令会从指定的文件里读取内容,将其依照指定格式重新编排后,输出到标准输出设备。若指定的文件名为"-",则fmt指令会从标准输入设备读取数据。
) K7 ^5 n! E8 j" x3 {6 A; U
# A( H! q- K1 e9 d0 t, q" e ~! Z
6 j8 U3 e+ e, D4 m0 n7 j# Q0 O0 k
语法
$ W# T0 X* N$ l+ F
* o5 l9 G# d, l) G/ Z
fmt [-cstu][-p<列起始字符串>][-w<每列字符数>][--help][--version][文件...]
: Y2 w7 a2 b4 N& R/ J3 h
$ c+ }: _* l S! @6 }6 B- S- C: P
( h3 b) i0 }8 j6 X6 M* e" J- v
+ k2 V3 w4 k. h3 E0 f
参数说明:
. R0 Q: \4 ~4 m8 [0 o* U' K
( g% H [4 K" r' X* v" C7 m6 W7 c
-c或--crown-margin 每段前两列缩排。
6 f+ p8 x" ]- k2 `* C' D0 n' { u1 {
-p<列起始字符串>或-prefix=<列起始字符串> 仅合并含有指定字符串的列,通常运用在程序语言的注解方面。
: o3 p+ U: t* ^! E6 f+ N2 w
-s或--split-only 只拆开字数超出每列字符数的列,但不合并字数不足每列字符数的列。
4 s$ \% M7 _: w% t' _% N6 L* a2 p
-t或--tagged-paragraph 每列前两列缩排,但第1列和第2列的缩排格式不同。
3 c& }* S( N( d' ^
-u或--uniform-spacing 每个字符之间都以一个空格字符间隔,每个句子之间则两个空格字符分隔。
; x0 z) l2 i- n
-w<每列字符数>或--width=<每列字符数>或-<每列字符数> 设置每列的最大字符数。
) a; _7 U' M3 L4 u+ T. S5 \
--help 在线帮助。
0 b" ?( \8 b9 G
--version 显示版本信息。
0 ^! P8 W% P9 y! w9 o+ G! [4 w
# L8 e. A/ k3 p5 N
, \7 Z3 ?8 c8 E: u7 i
实例
2 P. B3 \$ G' X3 z5 r0 Y3 o) {3 G
. Y* b9 t8 q. H( H6 h2 y$ M
重排指定文件。如文件testfile共5 行文字,可以通过命令对该文件格式进行重排,其命令为:
* j3 O1 R1 m* Z2 F0 `' t, x1 N
5 @: }0 K5 o9 O8 w2 ~
fmt testfile
/ _! [2 f* o; a7 S
$ S2 }, o F. [3 \+ ~
1 g$ X0 ]0 |. ?0 f! Z/ x |/ q
输出结果如下:
) s5 t3 U1 {6 R) U; M
2 k9 ^2 f+ G% H) W7 E. p
$ fmt testfile #重排testfile 文件
3 C1 x$ `& Y. t% Z" f
hello Linux! Linux is a free Unix-type operating system. This is a
$ [& u/ U. }$ ^6 p- v
Linux testfile! Linux Linux
6 Q( }3 r1 I3 W) h
8 |4 ^1 O' Z: I. T7 G; k) t
9 ^* a! K" G6 |5 d
将文件testfile重新排成85 个字符一行,并在标准输出设备上输出,其命令应该为:
0 z3 h3 j0 n. ^; H% {# q6 a
3 y0 H1 U$ ]3 k' @* K
fmt -w 85 testfile
: \' h$ J Q2 }, m6 b& a- o# j
2 j6 r3 }& D3 w6 E! _, Y
5 w4 P* ^% {4 W# D
为了对比,先使用cat 命令查看文件内容:
5 m% w3 a+ X0 |" _
7 D6 [6 E& v6 l! q7 ~9 A
$ cat testfile #查看testfile 文件的内容
: J1 J D; X& ]. Q) C" Y; E
hello Linux!
8 F7 h* ?; M5 x
Linux is a free Unix-type operating system.
( ~5 B3 e8 Q* U4 T
This is a Linux testfile!
5 q+ P0 F# p# H! O# i& S
Linux
5 P9 P1 N' V% M* p
Linux
4 S, L3 y& z6 H5 P* i
( t' A1 B5 L# ?6 t) q) @( |2 e
# h, h1 _8 M' y: x$ l G9 Y+ d9 w
使用fmt命令重排之后,输出结果如下:
0 R1 `# z8 \! N w# H4 u: ?
0 t' P0 A6 G) C1 ]9 n' W
$ fmt -w 85 testfile #指定重排宽度为85个字符
9 ^# Q5 p7 ~& ~: C) o; w
hello Linux! Linux is a free Unix-type operating system. This is a Linux testfile!
, T. h9 _3 N8 t8 O9 v) v
Linux Linux
% p) m& ]2 f" L1 p
作者:
muzitongxue
时间:
2021-9-22 15:02
这是编排文本的命令吧
作者:
NingW
时间:
2021-9-22 15:30
Linux fmt命令用于编排文本文件
作者:
younicp
时间:
2021-9-22 15:31
fmt指令会从指定的文件里读取内容,将其依照指定格式重新编排后,输出到标准输出设备
作者:
happyday
时间:
2021-9-22 15:31
若指定的文件名为"-",则fmt指令会从标准输入设备读取数据
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2