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  ~! Z6 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- vLinux testfile! Linux Linux 6 Q( }3 r1 I3 W) h

8 |4 ^1 O' Z: I. T7 G; k) t9 ^* a! K" G6 |5 d
将文件testfile重新排成85 个字符一行,并在标准输出设备上输出,其命令应该为:
0 z3 h3 j0 n. ^; H% {# q6 a
3 y0 H1 U$ ]3 k' @* Kfmt -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; Ehello Linux!  
8 F7 h* ?; M5 xLinux is a free Unix-type operating system.  
( ~5 B3 e8 Q* U4 TThis 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