TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
* D! U: x9 d% C" o1、cat 显示文件连接文件内容的工具;
# Q8 q" ^3 l6 n& z/ g$ W- F
5 T0 j) }; S+ q4 d/ T, ]. I' [# z$ N3 l
cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。
9 k1 L" b2 L+ d& ~2 m, b
) z9 S, p" D8 f6 `比如:
. p, j# x6 V" H" u
: Q. P4 @* \' p% W- Q6 ^3 ode>[root@localhost ~]# cat /etc/fstabde>
' \) T+ k5 y1 J- ]. @5 Y8 n! i为了便于新手弟兄灵活掌握这个工具,我们多说一点常用的参数;$ Y7 Q1 e( H5 g* w, N
% O3 n; C, u( L8 X+ q8 r
- W, J. [5 a2 _& A" h
1.0 cat 语法结构;
S, S% w' X2 X, S6 H2 h- i2 u! X! `, a0 R- E
de>cat [选项] [文件]...de>
3 U7 f9 P8 |# r2 o, y! X; B- m! Y选项6 }$ t! U, w7 v8 E: r2 H
-A, --show-all 等价于 -vET' a7 p) \! f; x7 x' F
-b, --number-nonblank 对非空输出行编号2 c3 }, z8 D" i* f! t% P
-e 等价于 -vE
' ?7 ]% i$ \. `6 a( l4 j-E, --show-ends 在每行结束处显示 $' l7 \" S0 s. O1 E& p
-n, --number 对输出的所有行编号
8 e7 @1 v: d1 [ O" T9 P+ v5 b-s, --squeeze-blank 不输出多行空行8 |# d! O% ]3 {: M. s
-t 与 -vT 等价
0 W: h4 x% G0 b# R" J! M-T, --show-tabs 将跳 字符显示为 ^I
5 e$ K, E0 E$ D, q8 M-u (被忽略) L0 T/ I" N( I
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外* C7 }; p' S( e6 \' [8 e; d8 c
--help 显示此帮助信息并离开
6 o3 f+ O# H7 o, `6 {) \/ Q4 k6 J$ D
1.1 cat 查看文件内容实例;# V# Y2 V2 t3 E* y5 ~
2 \; U- \' r S
de>[root@localhost ~]# cat /etc/profile 注:查看/etc/目录下的profile文件内容;& T( p5 W" p/ |
[root@localhost ~]# cat -b /etc/fstab 注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始;
4 i8 d( d( C+ A9 i2 W* r+ h[root@localhost ~]# cat -n /etc/profile 注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示;
$ n1 B/ r/ l5 M' n; ^[root@localhost ~]# cat -E /etc/profile 注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号;de>% ]& F+ J# L! c+ Y6 x/ i) T
cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;
; Z8 M P6 M( \% y# D
' i" z+ d+ Q" F2 W3 cde>[root@localhost ~]# cat -n /etc/profile
J0 x* \6 {& P6 p3 s[root@localhost ~]# nl /etc/profilede>
9 w9 ?/ r& R; I& scat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;
1 v& b5 n5 D4 r" q: z' u2 t& h$ \6 d5 t6 J: S+ H
de>[root@localhost ~]# cat /etc/fstab /etc/profilede>
0 N2 T ~) ]9 Z& n0 }0 h H* Dcat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;
9 i2 a- a0 D4 H* f0 k2 s
' k9 D! Z3 A! T& [0 {3 g. fde>[root@localhost ~]# cat /etc/fstab /etc/profile | morede>! @! O: h( B6 d7 ^6 B% Q. c( x9 }
5 R, l. | n) j" o* d% _& B1.2 cat 的创建、连接文件功能实例;- Q9 f, C( u( S- ^
# t' r E" Z( m2 L- @* o0 S: n
2 d; B9 m% r! W: s! G
cat 有创建文件的功能,创建文件后,要以EOF或STOP结束;4 p/ x* Y0 C. m' p
8 g& x9 f9 i4 r8 e/ w; _# u0 |3 gde>[root@localhost ~]# cat > linuxsir.org.txt << EOF 注:创建linuxsir.org.txt文件;
+ i5 E+ y. S3 |/ m. i. ]> 我来测试 cat 创建文件,并且为文件输入内容; 注:这是为linuxsir.org.txt文件输入内容;
2 n- q% j! ^7 \6 ^# F> 北南南北 测试; 注:这是为linuxsir.org.txt文件输入内容;
& Z7 g/ o- N2 y> EOF 注:退出编辑状态;
; R$ W' v4 O! `. `0 P( _6 ]8 h+ g. M# I: |: }3 U. Y& Z; q; C
[root@localhost ~]# cat linuxsir.org.txt 注:我们查看一下linuxsir.org.txt文件的内容;% C4 m+ v2 B6 L) f
; @1 @7 Z& g# a4 [
我来测试 cat 创建文件,并且为文件输入内容;
. L3 ?+ u0 T6 i北南南北 测试;de>
: r" D3 N7 U r# S) h' Qcat 还有向已存在的文件追加内容的功能;2 M, J( c8 R/ O2 _
. L3 _6 _9 ^% B% S( P8 Ide>[root@localhost ~]# cat linuxsir.txt 注:查看已存在的文件linuxsir.txt 内容;3 V+ C% y b: f) R! _; F
I am BeiNanNanBei From LinuxSir.Org . 注:内容行. E8 d" D6 _. P4 _7 m5 x
我正在为cat命令写文档- T( ] X8 _$ [
% W& z+ ?7 c4 H. h) O" H1 i
% { u$ B7 R2 W3 u& K6 J& q
[root@localhost ~]# cat >> linuxsir.txt << EOF 注:我们向linuxsir.txt文件追加内容;
9 u* k) k3 l4 {% Z- j> 我来测试cat向文档追加内容的功能; 注:这是追回的内容
4 U# a# s2 P6 p0 n9 U j> OK?* ]2 i @5 t# n
> OK~
. w' ?; v- B" D) v1 g> 北南 呈上- m% X Z$ D# ]6 ~5 m4 s* _* a1 U- W
> EOF 注:以EOF退出;" O+ k j& d. {& @5 t6 B
# J9 U f$ v5 H# D6 q3 F3 |& [/ N7 K; X4 \0 M
[root@localhost ~]# cat linuxsir.txt 注:查看文件内容,看是否追回成功。
1 J1 N6 ^" C2 W S) _& HI am BeiNanNanBei From LinuxSir.Org .$ {1 m3 Y$ [ n0 U1 [0 X- `1 Q
我正在为cat命令写文档5 ^* {4 V4 F/ N
0 i) d- A/ G& ?+ c
我来测试cat向文档追加内容的功能;
1 j8 i& f- P ^6 @8 r" F* B dOK?
, F3 [. G* d3 m+ N/ k! S) ~* W9 vOK~. v1 v0 F% b2 D4 @+ F4 E, y, t
北南 呈上de>: u! `. U" x( X8 B: i& g" y; H5 j
# A: ~6 q3 f. Q) Y) V
8 @$ V/ z" M2 P, k& u
2 x7 f$ R4 k# f6 @; Ncat 连接多个文件的内容并且输出到一个新文件中;% b6 |$ j6 {% }! L1 @
假设我们有sir01.txt、sir02.tx和sir03.txt ,并且内容如下;# \0 {9 [. K' @1 g8 r% Q
$ D7 m; j5 R% J/ H( x
de>[root@localhost ~]# cat sir01.txt
7 N5 O' @# W8 L( U9 Z& M2 c1234560 p6 S6 V3 L# z9 o' r; i3 I/ f
i am testing
+ K! E) P9 W/ R" j2 k
5 y4 U2 Z! q" t. M1 x0 h" P[root@localhost ~]# cat sir02.txt
5 @6 H. y2 `5 \; O1 [6 P7 B567897 K. h2 ?* V& P0 O5 b3 s
BeiNan Tested
3 V% I5 n0 b+ L4 F0 u
$ ^& e* r; c$ f/ n8 E k5 k" b[root@localhost ~]# cat sir03.txt
8 \- z3 z$ ` t! M# M; g098763 T3 ^" E7 X3 M( c* T) S" S
linuxsir.org testingde>
. ? C% b! U8 w我想通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。7 D% F0 H# S6 i3 x# ^) X" D
& q( `' c; f# a( ?* i
注意:其原理是把三个文件的内容连接起来,然后创建sir04.txt文件,并且把几个文件的内容同时写入sir04.txt中。特别值得一提的是,如果您输入到一个已经存在的sir04.txt 文件,会把sir04.txt内容清空。3 [* q2 q8 p* ]
1 ]. v) ]* S" f4 ]: E! y
de>[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt) w3 G+ ~3 z" ?, S
. l* i0 k; B$ X3 ][root@localhost ~]# more sir04.txt$ ^1 A9 V5 e' I8 u, o3 `$ @! e7 B
123456
z; d# J. }3 n8 L- {i am testing
. m2 C. \" Y3 b1 g56789 @9 O3 R/ h( S, i( I! X
BeiNan Tested
5 S. G) Z5 q* q9 L8 X: h3 x8 V09876
8 m- r) J$ Y% x0 b4 @linuxsir.org testingde>, k3 s+ m# o- E6 j
cat 把一个或多个已存在的文件内容,追加到一个已存在的文件中9 M: P5 c) s) T, B% c* P
* u# {. |7 K: zde>[root@localhost ~]# cat sir00.txt- ]3 ~9 \' }% h
linuxsir.org forever
[& G2 n$ Y. w! {7 d( [& s9 H( B6 i+ Q C O
[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt7 P, g0 O8 E9 { x7 g3 I
, g2 n9 S7 X7 ?3 n2 N- g* b
[root@localhost ~]# cat sir00.txt
# a4 ~: C4 k6 T5 b6 M. M0 wlinuxsir.org forever. T* l% z* q. T" Y$ ~6 @/ ^: l
123456
2 p, V/ |; K4 h# j- y8 Di am testing5 r6 I# o& n8 h7 E1 ]" F
56789
& x. Z: j- W0 m0 t5 o: aBeiNan Tested# M' e8 n9 I' Y. \9 `; n
09876
9 I( k" T3 E+ F Q0 ~" _linuxsir.org testingde>
. R5 S- {/ l7 P9 z R1 Y警告:我们要知道>意思是创建,>>是追加。千万不要弄混了。造成失误可不是闹着玩的; |
|