TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
' }9 d5 J5 i- X3 Y
简略版:
' Q/ ^! ]. o$ g5 A$ l) O, \: N
1 N, u8 G- l" ?+ x- ?9 wcat主要有三大功能:: j. W7 g6 H8 {( q q& V
1.一次显示整个文件。$ cat filename
$ W1 M' n) e9 \8 W0 a& u2.从键盘创建一个文件。$ cat > filename
! z+ K; ]% M f; r$ j- [, V 只能创建新文件,不能编辑已有文件.
" u; P( K; G# b3.将几个文件合并为一个文件: $cat file1 file2 > file
# y. i3 I' J7 m! x9 [; @参数:
6 R7 a* g# i) C6 F5 M2 V-n 或 --number 由 1 开始对所有输出的行数编号
2 e" T- I7 v* m, t% g w-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号. i2 T1 F' r7 U- j# X! X6 T
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行- }( c& X2 A9 m
-v 或 --show-nonprinting
. H' ~/ h- u3 h. e例:* P! i6 D) ?- K( |+ d
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
; \- y: n- A( o' J& P1 Ucat -n textfile1 > textfile2$ X' K: w6 b8 W" C& F4 j- j# Y
6 \ j3 Y: x/ Y& v$ r; [, z
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
" m- Y6 k, \6 z5 t, ucat -b textfile1 textfile2 >> textfile3 Z8 n; J+ a: H- }. m# B
/ y2 v# V Q* [; s+ I
把test.txt文件扔进垃圾箱,赋空值test.txt
# T( e9 h) J4 W! l1 k) w R' Scat /dev/null > /etc/test.txt 7 X" ^3 ]3 t$ A- a: r
! q$ f& d% Q6 b0 j; W
+ y4 T) \7 _: n# N8 i2 ?9 n
cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。, ~* M" p. Q$ c) s5 C
' g0 F! M: M8 }比如:
& e7 |- ?; Z7 ]+ C9 \' [# }1 R$ Q$ n! ]# _/ v/ z
de>[root@localhost ~]# cat /etc/fstabde>
& G3 @0 k" B# \8 Z为了便于新手弟兄灵活掌握这个工具,我们多说一点常用的参数;
5 E; P7 O4 i1 o* G0 O, v9 W% ]
# m7 K3 e1 ?9 z+ Z
1.0 cat 语法结构;
- u7 D* g% x# M% \6 k6 D
- F7 I5 X/ J* M7 [/ `de>cat [选项] [文件]...de>
0 N: P3 k6 O$ V/ [! E. B& Q选项
0 `$ C: x/ E' q+ r. Z4 d9 h: k-A, --show-all 等价于 -vET
5 C K+ [1 {4 E4 A/ R6 D3 l. {& n-b, --number-nonblank 对非空输出行编号8 j1 B4 f% c" o% A
-e 等价于 -vE8 y7 I/ F2 k' q& u W+ y
-E, --show-ends 在每行结束处显示 $- G0 j. Q' v/ Y* X8 y
-n, --number 对输出的所有行编号
- l$ ~' }5 {- L& f* R8 y-s, --squeeze-blank 不输出多行空行! }, M" z# t, x
-t 与 -vT 等价; C. J: N0 M9 F( K, i1 }& c
-T, --show-tabs 将跳 字符显示为 ^I
2 r5 a0 s5 j5 Z5 B; _$ C1 P-u (被忽略)) Y! D9 M5 {- B, `
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外) P, ?9 G) N. O6 Z
--help 显示此帮助信息并离开' ~4 W* B. l5 F) a
" p- O( r' i# E4 z+ L8 h1.1 cat 查看文件内容实例;% P4 r3 t! u/ `+ {! Z7 K) v( o" M
) O* Z' L) k* [$ `& fde>[root@localhost ~]# cat /etc/profile 注:查看/etc/目录下的profile文件内容;* \% w% u8 ~) }" Z2 E6 z
[root@localhost ~]# cat -b /etc/fstab 注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始;
1 R" C# b' M) u* }; a[root@localhost ~]# cat -n /etc/profile 注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示;
1 U8 q1 }- d( k! X* W[root@localhost ~]# cat -E /etc/profile 注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号;de>: d3 S: ^8 e/ O- u1 {1 E+ l
cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;8 \6 K3 l& K: n8 w f8 B
1 p" O7 l4 L4 F( m/ A p
de>[root@localhost ~]# cat -n /etc/profile4 ^ O, k* \8 Q; Z l# \; ?( M4 u
[root@localhost ~]# nl /etc/profilede>
. E% M; n) y. a Pcat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;' m* P8 ?+ Y# m& [+ i
/ J( R$ D! Z% e' m9 x
de>[root@localhost ~]# cat /etc/fstab /etc/profilede>
- q* ^1 M0 I7 h: e) E, e0 wcat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;
" @# T0 J5 ^/ S, s
0 W# Y9 r8 v9 V. q! W: pde>[root@localhost ~]# cat /etc/fstab /etc/profile | morede>
& H% U5 @+ X1 g3 Y" L {* y! q7 [* A( ^/ r
1.2 cat 的创建、连接文件功能实例;! k( d) p& v# x2 R, w
+ D8 b& \/ u" { W( m8 {3 Z
. e% {, c3 A" acat 有创建文件的功能,创建文件后,要以EOF或STOP结束;0 ?# k$ R4 R# U) f3 w# U
+ p* M; j' k1 e& O$ L. Q/ i Xde>[root@localhost ~]# cat > linuxsir.org.txt << EOF 注:创建linuxsir.org.txt文件;( A: T# Z6 K, \+ F3 S
> 我来测试 cat 创建文件,并且为文件输入内容; 注:这是为linuxsir.org.txt文件输入内容; h6 H4 f O$ t! y, e
> 北南南北 测试; 注:这是为linuxsir.org.txt文件输入内容;( ?( K$ j" ~! [# j( R* O' O
> EOF 注:退出编辑状态;; c- S* l/ `) ^" z( M2 q! l0 v
% ?; Y: |, Z2 C8 N- ^/ t. P( }[root@localhost ~]# cat linuxsir.org.txt 注:我们查看一下linuxsir.org.txt文件的内容;4 b9 {! C0 L& t3 z1 M6 r8 l
; W5 k; `1 {+ O9 }/ Z
我来测试 cat 创建文件,并且为文件输入内容;
# k; V; T$ J4 m0 O北南南北 测试;de>
8 a$ x2 x& ~7 Mcat 还有向已存在的文件追加内容的功能;
- \4 |( Z9 s- t- m( I, a. o4 L* }/ e" r# p! {" o1 x" I
de>[root@localhost ~]# cat linuxsir.txt 注:查看已存在的文件linuxsir.txt 内容;; C7 m: _' _2 G
I am BeiNanNanBei From LinuxSir.Org . 注:内容行
) J; o9 E" x8 c" f& Y( [& j4 E' W! v, B我正在为cat命令写文档
0 F- [/ ~. V5 Q; F6 S5 M: m$ O5 P4 ^$ D @+ v: ^! A: r T
) {* p6 @. C- m. B0 Q% h" b[root@localhost ~]# cat >> linuxsir.txt << EOF 注:我们向linuxsir.txt文件追加内容;
; A& ]9 ^0 f% H9 M) H5 A> 我来测试cat向文档追加内容的功能; 注:这是追回的内容
: g/ F A" @5 u0 o# k2 d$ p+ {' [' O& V> OK?
1 A' K. N2 J- x! d$ V> OK~. p. k7 F9 E. d$ l
> 北南 呈上
& E! E) Z5 ^: a> EOF 注:以EOF退出;% n/ G" N7 I( G& g! T, W8 o8 k
* }; P0 e3 S0 O4 C$ K v" y- w) X$ G- k- o5 U3 a
[root@localhost ~]# cat linuxsir.txt 注:查看文件内容,看是否追回成功。
1 N2 r" ^7 ~" _0 f. @) h7 wI am BeiNanNanBei From LinuxSir.Org .
5 l- D1 u; |$ G1 ?" n9 e我正在为cat命令写文档, [! |( r6 r( M- v# v
# O% w% r" t: K' `- m我来测试cat向文档追加内容的功能; 5 B8 z3 J6 ~) [- |
OK?9 i6 e9 W5 p, W2 ^8 Y8 A
OK~
8 Q/ B9 a; i; Q8 ~北南 呈上de>, c" l* ?8 Z5 s- v2 n
3 S& l0 I% q5 ^: G8 X8 o/ r& `' O8 T2 E+ H3 ~% ^1 L/ |& v/ {
! l- h. R# ?, h$ k8 a- ]cat 连接多个文件的内容并且输出到一个新文件中;8 e0 g3 R0 I0 j% h
, w$ P$ W( a7 v( _+ K$ E/ E假设我们有sir01.txt、sir02.tx和sir03.txt ,并且内容如下;
4 [" o' ]* X$ U7 u' Z6 P5 `1 ` Q8 ]6 s5 w5 l
de>[root@localhost ~]# cat sir01.txt
5 E1 g0 g1 j: v4 N. p5 ]123456
, Z2 a% a- D, z) a' a# l9 Ci am testing
+ Y6 f) l1 ?% O$ T6 `+ t8 s
6 I) o' F$ b" Q4 B \2 T[root@localhost ~]# cat sir02.txt
7 U" A* [$ R" ~9 A Y* n9 X56789
, {9 ~6 P8 U MBeiNan Tested- Z5 g: w, S1 d. v- z
* ?+ t* x+ T' l/ a' J1 ?" R# b[root@localhost ~]# cat sir03.txt
7 G! y; v, [1 t9 W09876! R' k/ H B5 Y, a8 `
linuxsir.org testingde>
' K' g: c, d- a: S9 o; L4 o我想通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。# t: \2 q( Q+ S: T; S s
. a0 a1 {4 F$ M( s注意:其原理是把三个文件的内容连接起来,然后创建sir04.txt文件,并且把几个文件的内容同时写入sir04.txt中。特别值得一提的是,如果您输入到一个已经存在的sir04.txt 文件,会把sir04.txt内容清空。
1 c' D% ^! B0 v }3 `2 f) m1 Z7 o- V* \6 c/ m& H
de>[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt
+ p% n# m' p H+ Z# u0 _$ A3 L
( ^7 D: i2 E) i1 v. g; @0 M! O[root@localhost ~]# more sir04.txt
6 }- H/ E4 t* `" t123456
, u0 S. ~' }% R6 ri am testing
% m2 o- J: Y2 L. t+ r# z5 B" J56789
/ M$ F$ ] i+ a# k' m: L& |BeiNan Tested
' m; Q7 O4 s+ u: ]8 V# z7 `3 j. g09876
, @" T8 v& H5 ]& h# t8 Glinuxsir.org testingde>
* |! D% J, Z6 h& V- g# Hcat 把一个或多个已存在的文件内容,追加到一个已存在的文件中6 B+ ^2 X w3 k2 r8 ^% r
# q3 F0 z6 z$ z+ ~$ H. Z8 |2 ^# P
de>[root@localhost ~]# cat sir00.txt
/ M7 [3 [, L6 P6 @' w' C% F. Alinuxsir.org forever& Q( `2 G" O* K; T5 _
1 X) ]. m) B& L9 d' C( F+ Y[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt+ E- G$ ?9 \" X- x9 Z
) e0 A, z0 j. O0 i6 W+ C" i& _. R" s* {
[root@localhost ~]# cat sir00.txt
2 `( J, ~5 k. V1 glinuxsir.org forever
. \9 N3 x- q7 ~- s; y, |; s- ?% t* p123456, y! h& N7 O# m% O3 F9 f! W; t& _
i am testing9 Y9 \" g. Z A: M
56789& R- S& M4 e0 B ~* y
BeiNan Tested
# ~% n! ]8 ]1 \( d" l8 j+ }2 ~09876
* f2 p1 U. A* @& ]+ c/ ~) Rlinuxsir.org testingde>% {# ^( v; H+ r! w
警告:我们要知道>意思是创建,>>是追加。千万不要弄混了。造成失误可不是闹着玩的;0 {* v* p2 F7 u9 ^9 i! d) d1 Q6 t. |
|
|