TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
$ w+ A! ^, V8 `4 l2 e2 P简略版:
9 [( R9 y* U) X7 E9 O1 d. ^! u( r0 y1 i5 r3 q
cat主要有三大功能:
5 m$ c3 U4 ?" H% Q- w' c1.一次显示整个文件。$ cat filename' ]: a/ h' Y% Z/ c
2.从键盘创建一个文件。$ cat > filename
3 B" s7 r% X/ L$ i6 f7 t+ z 只能创建新文件,不能编辑已有文件.9 A9 V' }+ _$ k. P& o) m B
3.将几个文件合并为一个文件: $cat file1 file2 > file: t& |- ?" L9 J! ^
参数:9 X8 h9 U) c( E' p+ C# O/ o
-n 或 --number 由 1 开始对所有输出的行数编号
3 T; G6 o ?- R) }4 t5 F-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
7 `3 M4 o8 A( y8 d. r-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行2 b; G# q* I3 ?( c5 O
-v 或 --show-nonprinting
/ \/ U" @; x+ p; q. d; s% @例:
* ~: {: `" ` M: Q# k, P把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里/ |1 P& E* K. A
cat -n textfile1 > textfile2
; v8 b2 ?3 y* h g; e0 r! n8 Y) Q; t2 ]( k! [6 t" [
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。9 h. X# J. z, G+ K8 t: @, q
cat -b textfile1 textfile2 >> textfile3
6 E+ O9 y3 s1 N& A- ?: }
- p% z' V$ a6 s2 C4 Q" T. w把test.txt文件扔进垃圾箱,赋空值test.txt6 L& O1 u- m: `( o7 m, m. r/ M
cat /dev/null > /etc/test.txt
& n; I& {7 T8 `4 L/ o
8 |+ o; } q3 g
# F3 c8 C* G8 A1 ~cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。4 J7 Z; B. w6 J% n! o* r
7 n; a2 X' b$ [比如:1 e0 [2 _) V k2 d I
+ H6 b6 F" G6 y% `4 G+ ]de>[root@localhost ~]# cat /etc/fstabde>5 m* ^5 B% ] A/ o$ ^1 R; U( ^, g
为了便于新手弟兄灵活掌握这个工具,我们多说一点常用的参数;7 h+ h0 ]+ j( ?
& {+ Z3 P' Z) ~+ n' b: \
0 `7 ^. `$ \0 a
1.0 cat 语法结构;
z- T4 S0 f3 }. t1 H' R! r( a/ N8 y" k U6 U- W+ Q/ f4 L
de>cat [选项] [文件]...de>
2 k. j9 ? j2 j% i$ I: @1 H选项
- r& R- g7 ^( e; }5 Z! U& G9 m4 q9 I-A, --show-all 等价于 -vET
1 X" `- C9 ]/ g; J8 I2 q7 k1 t% ?7 z-b, --number-nonblank 对非空输出行编号
J/ p5 A3 Q) A2 ~-e 等价于 -vE% x- ~/ r% t' i- \3 e
-E, --show-ends 在每行结束处显示 $5 L! E; i! ^# y7 {) G
-n, --number 对输出的所有行编号
" x- D1 L: E3 }-s, --squeeze-blank 不输出多行空行
0 C. ]/ g7 q3 ]% }; o! G4 O L3 }-t 与 -vT 等价5 C% ~. S( v) h" f
-T, --show-tabs 将跳 字符显示为 ^I
. |) o E9 K1 d0 H-u (被忽略)
$ \& M4 ]- ?' M, G+ t( y% V-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
( _' u, G5 ]& b* j) s--help 显示此帮助信息并离开1 r4 {# Z" \% ] B% Z# _; M
1 g X- z9 h4 f/ d1.1 cat 查看文件内容实例;
# b- m! m$ \2 k: s. x7 X9 c
5 G1 `, R( |. Z* } g) ]de>[root@localhost ~]# cat /etc/profile 注:查看/etc/目录下的profile文件内容;8 z1 G7 ^: ^8 l( [
[root@localhost ~]# cat -b /etc/fstab 注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始;
, U9 W) X% B' F, ^[root@localhost ~]# cat -n /etc/profile 注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示;8 Q9 ^/ H* T9 J0 D: p. ?
[root@localhost ~]# cat -E /etc/profile 注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号;de># u( V8 T4 L* Z+ P. T$ y
cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;' E; E, l5 i7 s* F
0 }4 F& H9 k; `# U% s( h; R
de>[root@localhost ~]# cat -n /etc/profile
0 u, S8 z7 J& n+ T7 p2 N9 G[root@localhost ~]# nl /etc/profilede>" |1 J5 [- p2 \- C
cat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;5 b8 k% S6 }) n Z) ]& [
( f! N- `/ f( q* h/ F, L0 B' u
de>[root@localhost ~]# cat /etc/fstab /etc/profilede>2 I6 e- u7 D+ i' _& s4 e
cat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;# E, }1 `' x' D: t# n
0 l5 L5 X9 C& U- J, t
de>[root@localhost ~]# cat /etc/fstab /etc/profile | morede>! J, R9 D$ ~" b a9 A' e7 p% m
% i" n2 q: V6 c. D1.2 cat 的创建、连接文件功能实例;: l1 W5 K4 o. B, p# U5 f0 X3 A
! b. Z: O: U7 j, f" a* M
1 |- \4 r8 x, k, f# U' f+ i% Tcat 有创建文件的功能,创建文件后,要以EOF或STOP结束;/ Z7 j# ]& B. n) a! ]" k! y
" _6 c& q% D0 o
de>[root@localhost ~]# cat > linuxsir.org.txt << EOF 注:创建linuxsir.org.txt文件;2 z# H' N8 e" C; Y
> 我来测试 cat 创建文件,并且为文件输入内容; 注:这是为linuxsir.org.txt文件输入内容;* S$ z* d% ?: j8 N
> 北南南北 测试; 注:这是为linuxsir.org.txt文件输入内容;
; d5 f7 M! h A9 @* @# L> EOF 注:退出编辑状态;0 q# X4 p+ t# t- I' H
" ^! z1 H* }- L4 f/ M# b# U
[root@localhost ~]# cat linuxsir.org.txt 注:我们查看一下linuxsir.org.txt文件的内容;7 T* \9 a6 V0 c/ y, y( K+ f1 B
, h9 s4 G: ]3 K% n' |6 G# K% g我来测试 cat 创建文件,并且为文件输入内容;
: t7 }1 C5 w0 W; Z( [& l* R# _北南南北 测试;de>0 u% q8 e- u) M- a7 C
cat 还有向已存在的文件追加内容的功能;" x# W, }0 ?, v* k" H. K
! B& Z% e0 g. z! W2 d, a9 Lde>[root@localhost ~]# cat linuxsir.txt 注:查看已存在的文件linuxsir.txt 内容;
" M6 K4 L# u2 j' V% hI am BeiNanNanBei From LinuxSir.Org . 注:内容行
* c# A$ V3 D' |9 S9 q5 S( _我正在为cat命令写文档
! \- |& H2 |# H- i( ^* Y* R/ T$ D2 c5 {
7 k! h( i9 ~1 u& S2 @[root@localhost ~]# cat >> linuxsir.txt << EOF 注:我们向linuxsir.txt文件追加内容;
0 C6 x: W' s7 A" b. Z( E> 我来测试cat向文档追加内容的功能; 注:这是追回的内容
( H5 [- j, ^" t> OK?
- r- n% P( L/ R( O9 W> OK~& y4 e! J' T& b
> 北南 呈上% O% W7 C) H/ l6 }
> EOF 注:以EOF退出;3 d; d; S. G( B- K. S
1 Z6 s2 F5 ?% t$ w' m
" t8 g3 y# ~( h" o! F1 H[root@localhost ~]# cat linuxsir.txt 注:查看文件内容,看是否追回成功。. w; _& ~$ f& N2 a% l3 d, @+ {5 r
I am BeiNanNanBei From LinuxSir.Org ./ ^: g) d! r$ j P' S
我正在为cat命令写文档7 l8 B* T# F: Z. a9 M
9 @2 {5 d( Z9 r1 b; E
我来测试cat向文档追加内容的功能;
1 D+ ~( s# g% t8 c" SOK?
2 G" F# T/ k. }2 g* T& B2 gOK~
- j) J9 F, Y8 v; I( ]8 I) F北南 呈上de>
4 Y8 \4 p8 y5 t9 j; K) m
& P+ L0 w' Y' W
8 Y* | s3 l" w5 {6 T+ \
$ _" t, T1 ~3 k, f1 P' mcat 连接多个文件的内容并且输出到一个新文件中;
/ [8 E' v! N8 d) u' K5 c
) ~) p3 b& h3 [' q5 G# [假设我们有sir01.txt、sir02.tx和sir03.txt ,并且内容如下;. d7 z4 Y! V; l6 Z
x+ b, q% p! {: B8 W% {+ O2 @! pde>[root@localhost ~]# cat sir01.txt $ V( `" b$ T) }" r% V4 U; Q+ Q
123456 T+ Z% P+ e( E
i am testing8 b! X" x1 k2 X0 c! l+ P, K
0 b7 c4 ?( { o& ?[root@localhost ~]# cat sir02.txt
' D6 t% m( p9 m. b56789& u) c# O9 c! p
BeiNan Tested& e6 X6 l. ^" f2 e& Q8 {
/ m( [& e2 L4 Y6 k0 K/ L[root@localhost ~]# cat sir03.txt
" {0 p# I/ z) i. ^% ^: O9 O6 T09876; S Y: W& Z+ K7 I; l
linuxsir.org testingde>8 R. E: c8 j) o; G
我想通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。
# _. k V) E( J1 f$ y/ q S) R6 ^9 v, y# b4 v, U( f" M
注意:其原理是把三个文件的内容连接起来,然后创建sir04.txt文件,并且把几个文件的内容同时写入sir04.txt中。特别值得一提的是,如果您输入到一个已经存在的sir04.txt 文件,会把sir04.txt内容清空。4 B% Z8 y/ U# K: O% k
$ g$ b; x' ^ s) @" k: O& y9 S M. nde>[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt7 K' I/ v$ A) F" N2 D9 W2 j0 J" b
$ A/ H* U' f$ U! V$ p[root@localhost ~]# more sir04.txt
) j# T/ b" X c1 u+ A( B7 ^123456& b$ @) ?1 E3 o; Z0 g/ B" `; X! z
i am testing2 N, B0 o7 f( Z2 s- g! X$ E
567890 _/ K4 [$ n9 N9 X" |* M
BeiNan Tested. u) O# Y# n, N, e
09876) f# g- z) E! o1 |9 |% [
linuxsir.org testingde>' h, `+ @* }6 {( R0 t! ?
cat 把一个或多个已存在的文件内容,追加到一个已存在的文件中
1 J2 S6 @7 K0 Y" w9 _7 x
. J- Y+ ?1 `3 Ade>[root@localhost ~]# cat sir00.txt
' M( w2 [8 X) n* a- E, Z; A- [- N$ ulinuxsir.org forever
: {; g, m3 \3 F4 b3 _7 t) p J$ Z/ e3 ~4 [$ K( k o" t3 y! r s
[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt+ C. o* _) H' v
: d& c3 C" C) X0 C[root@localhost ~]# cat sir00.txt
4 y6 S+ N2 ?( q6 Flinuxsir.org forever! C# G; Y0 Y- F
123456( Z5 L& i4 C! u- }5 L
i am testing+ H8 s R) H1 z, J
56789
) H$ h E$ E; m3 q. p9 p% dBeiNan Tested0 T0 d/ S0 o7 |8 t
09876- r% P. o6 z- ^' o; D& _
linuxsir.org testingde>
: z$ M* g* v7 p& K警告:我们要知道>意思是创建,>>是追加。千万不要弄混了。造成失误可不是闹着玩的;
& E/ r7 j$ a$ b5 D1 ~ |
|