TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{/ }% T, H1 r1、cat 显示文件连接文件内容的工具;2 ^: f! L) t9 M; ~* p8 z
% W: k$ G- w$ }# H
! b+ R* b0 t' t$ K( ~: o0 ocat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。
' n: D6 T; _& {" x* C- {9 P. x1 Z2 }' ~, p w- }/ W
比如:$ b0 _; g* \8 i0 i/ L' c7 Q
( f7 m2 F& z2 R7 e' k$ g- O, `
de>[root@localhost ~]# cat /etc/fstabde>) @ @, M5 m- Q: i% Q
为了便于新手弟兄灵活掌握这个工具,我们多说一点常用的参数;
" r0 |# l* n+ I) V( T# r8 B- l+ ^: \! x0 J" h& f+ d1 c7 |
1 c- k* u6 s# Z! {* ?* o
1.0 cat 语法结构;
: o& L) @9 @( l" W1 S) I6 [1 P8 m7 b! K/ T
de>cat [选项] [文件]...de>. f8 u0 r9 e+ F4 n. s
选项
# L# I/ K2 t# o E1 b+ c1 z& a-A, --show-all 等价于 -vET# x9 v4 q# W* \6 n4 V8 r$ e. i/ Y
-b, --number-nonblank 对非空输出行编号, I0 c3 k' F, p u# r
-e 等价于 -vE4 ~1 f, L4 g. J- o
-E, --show-ends 在每行结束处显示 $
6 Y# m) o- m8 O/ j/ b1 P: g-n, --number 对输出的所有行编号
! `1 N9 J- @0 ~) p; E: o2 c+ L-s, --squeeze-blank 不输出多行空行! D: ^* }& m2 h+ M0 o
-t 与 -vT 等价+ ?2 \ `7 M. h8 k* o- i" u
-T, --show-tabs 将跳 字符显示为 ^I
# t, `' M, C3 l* T0 o-u (被忽略)
# U2 J. d! V9 ?-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
% l% O0 A( n- u1 T, g--help 显示此帮助信息并离开
1 j% M6 f7 w0 H! N- H+ i) ?
# B& [6 e- A* F( Z1.1 cat 查看文件内容实例;' k) w. M; \ W8 c
8 J- X% W* d; D+ Kde>[root@localhost ~]# cat /etc/profile 注:查看/etc/目录下的profile文件内容;
' Z, d' {% J4 w: ?. D7 t[root@localhost ~]# cat -b /etc/fstab 注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始;
# w: k7 c' _$ V7 E( q4 j4 q, v[root@localhost ~]# cat -n /etc/profile 注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示;
+ x r5 }+ v: M4 v[root@localhost ~]# cat -E /etc/profile 注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号;de>: k6 T8 x; {' u/ D0 C8 x1 x1 W, U4 f
cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;* K6 O4 i& e0 h- z
2 S: s! }7 L( l+ j4 v0 e5 xde>[root@localhost ~]# cat -n /etc/profile% ?0 a% \4 t* N, G8 B
[root@localhost ~]# nl /etc/profilede>! `8 T& F* n" A
cat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;
% X* V9 g7 N, i4 i. M6 j
- N% H' G9 [4 ~6 M) G# O& ]de>[root@localhost ~]# cat /etc/fstab /etc/profilede>
7 z8 `1 P8 h" Z2 [cat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;- G# e) v1 @% R9 u
( @0 l `4 M9 ^7 hde>[root@localhost ~]# cat /etc/fstab /etc/profile | morede>$ b. d4 w5 a0 y- i' F H
; W* h' O# |! Z) S. @. \% h$ {1.2 cat 的创建、连接文件功能实例;
$ F9 U) ]8 j- i: B& U! X$ c8 F
2 g F9 H- C8 ~, p9 G
- P, P2 E: D& I( zcat 有创建文件的功能,创建文件后,要以EOF或STOP结束;
" H# r5 _" a6 @
( q% F6 ~0 v, ?, _- I ~ K& Hde>[root@localhost ~]# cat > linuxsir.org.txt << EOF 注:创建linuxsir.org.txt文件;
/ C: K' o! m& r0 \1 h/ U6 M> 我来测试 cat 创建文件,并且为文件输入内容; 注:这是为linuxsir.org.txt文件输入内容;/ A, g: }& w2 a( U% d7 s* s
> 北南南北 测试; 注:这是为linuxsir.org.txt文件输入内容;
) d' B6 ?! W4 Z7 U9 p> EOF 注:退出编辑状态;$ B/ ]) x: }) ]. t" _& q( h- f
8 Y8 \1 Z; H8 i1 a/ e; {6 I
[root@localhost ~]# cat linuxsir.org.txt 注:我们查看一下linuxsir.org.txt文件的内容;
, D8 w* {# r) Z, h6 J8 z- g3 k
1 m. [: I2 w8 a3 t! I4 Q我来测试 cat 创建文件,并且为文件输入内容;8 \2 U2 n5 I- S& G
北南南北 测试;de>
! o( x9 \' N i' H# V5 Bcat 还有向已存在的文件追加内容的功能; I* k! T, @; i6 C# j* r
; O8 e0 T1 \7 T! p9 c5 ^ pde>[root@localhost ~]# cat linuxsir.txt 注:查看已存在的文件linuxsir.txt 内容;
, _5 A% Z& J6 d+ PI am BeiNanNanBei From LinuxSir.Org . 注:内容行
) A! Z2 d1 {4 u. q我正在为cat命令写文档% W. _( O0 n; o2 D8 D6 R: d
% F8 V& E6 q1 O7 P+ s
3 [0 Q, K& T) ]8 a[root@localhost ~]# cat >> linuxsir.txt << EOF 注:我们向linuxsir.txt文件追加内容;( }2 X2 i2 }5 C/ |5 K5 |
> 我来测试cat向文档追加内容的功能; 注:这是追回的内容
2 m; g8 s; {! M$ `> OK?$ `1 T: B9 `3 F
> OK~
+ j# l$ B. G2 }# {: J- j6 ^$ g/ Z> 北南 呈上9 h: W2 \- }/ l1 H4 W- G! G
> EOF 注:以EOF退出;1 g m6 s' g- d
3 o& s$ C4 ~9 U, A0 T, Z1 V, b& Y- w" L
[root@localhost ~]# cat linuxsir.txt 注:查看文件内容,看是否追回成功。& f( v/ R/ |# f& c d0 j
I am BeiNanNanBei From LinuxSir.Org .
% o3 [, @* B: w我正在为cat命令写文档
1 R& E3 L4 O5 P& i! |
0 Y7 y Z/ o# @- ]% k! s* J我来测试cat向文档追加内容的功能;
* g% `. V) W! U% C i$ D: pOK?
1 y* E& }# K, M! Z2 |& JOK~
& z) w: S& B6 @北南 呈上de>
) `* I: E# k0 H; ]: c+ ?, q, C9 j7 s; _
U( ^% a2 E4 [7 Q/ \( p
4 W& |' o# x- W; ncat 连接多个文件的内容并且输出到一个新文件中;3 a# j$ s7 J- J" |8 i
假设我们有sir01.txt、sir02.tx和sir03.txt ,并且内容如下;
1 d$ f3 k5 N. g" T \% ?9 e: F( s0 F9 c
de>[root@localhost ~]# cat sir01.txt 0 S3 B1 i0 {( y) v+ ]2 m) K
123456) R0 ?4 ]: }) j7 |( B
i am testing
' C3 \% ?: E; {% i$ `
1 R$ X8 l8 g) T1 V. R8 {: }[root@localhost ~]# cat sir02.txt
9 k- f' r6 l* Q3 ?* n56789- g: v# D( E' B/ o" t$ I6 x5 Z
BeiNan Tested# t$ q; `; d4 G) z
0 V0 F) X0 e8 ~. l5 J( l[root@localhost ~]# cat sir03.txt( [" \* H" O( i( f
09876/ P8 _$ p: P; Y3 z& l
linuxsir.org testingde>5 e6 }1 D/ d- O9 E3 s$ x
我想通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。
# p5 A, T7 q$ P8 {7 Q# q# n' n9 q& j
% z3 Z8 `5 b# A' T注意:其原理是把三个文件的内容连接起来,然后创建sir04.txt文件,并且把几个文件的内容同时写入sir04.txt中。特别值得一提的是,如果您输入到一个已经存在的sir04.txt 文件,会把sir04.txt内容清空。$ x& ` I2 P) b' g
; p6 Y0 y9 ~! O: k7 J0 j
de>[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt Y# A$ J' L# A. S4 T, g2 g1 b
2 u3 |5 Y, y3 V. [& p. a. G
[root@localhost ~]# more sir04.txt
5 R* V. \+ j+ y* ~! `123456 h- U" V1 [. C7 b$ y
i am testing
% G2 W; L/ z0 P$ v4 p) F56789
, C; n" T# ?3 B8 J: LBeiNan Tested/ ]! d2 s% M: k; f9 p4 U% F3 A
09876
# n/ y' m/ h- I% M* |linuxsir.org testingde>
1 P- F- M' x8 I7 Y7 Zcat 把一个或多个已存在的文件内容,追加到一个已存在的文件中% M. |, n2 @: k$ U: m/ `
' U7 l' }" Q/ M; i$ W( R! ^
de>[root@localhost ~]# cat sir00.txt
7 D; z' T2 J# z/ i" jlinuxsir.org forever; f' w# {" _( L! D5 w) N
# l. f) l- G* J; W& \7 I7 U7 J; d[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt
8 T/ n, m7 c0 c' }$ X6 R, ^' }/ \: T. {; b8 ~2 I: d
[root@localhost ~]# cat sir00.txt
" p% `) ~- Y+ Z5 p6 l+ Alinuxsir.org forever+ f8 R: C; `7 H9 y5 Z( x
123456
* d2 H3 Q3 s0 p2 j, U! Ci am testing+ M$ D1 U4 t' O
56789: _6 L0 A+ a5 I: E$ C `3 i# t. N) m
BeiNan Tested
- K/ Y$ t" `' T4 ?! ]$ D3 `09876/ O! V9 _( W" R8 Y1 w+ f3 y3 Y
linuxsir.org testingde># W, m6 J% E/ q" q$ P5 R f: r
警告:我们要知道>意思是创建,>>是追加。千万不要弄混了。造成失误可不是闹着玩的; |
|