TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
! U. i. @/ ?3 l简略版:4 g( B" y, Y! x9 T5 W
/ B6 S# m+ ?- ^! r2 y( \2 [cat主要有三大功能:1 q) a6 d" @% {; U1 x8 I: N0 R
1.一次显示整个文件。$ cat filename
/ ^& N' }0 j8 y6 a/ O+ m2.从键盘创建一个文件。$ cat > filename 8 O8 Q) P% y* ~. e
只能创建新文件,不能编辑已有文件.
3 Q; V+ x; u" d6 r; ^& a3.将几个文件合并为一个文件: $cat file1 file2 > file
" x2 Y4 O4 ?+ W3 c, ^! }: X" W2 u参数:7 f U8 i5 H1 E* P: x
-n 或 --number 由 1 开始对所有输出的行数编号
V( f- `8 M, P/ W% ]7 Q' h-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号; x) {$ `0 h9 `" p
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行1 }2 D9 i# G& G' F
-v 或 --show-nonprinting
; n( i4 h" t# C例:
' G: @( {/ }9 \' D* ~把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
& d; o3 \0 r! |% vcat -n textfile1 > textfile27 I0 p2 p& w+ {8 z4 Q
: [9 j. R: P, ~: _9 H) t/ r/ Q
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。6 _5 |$ p" w: D5 d8 ?
cat -b textfile1 textfile2 >> textfile3
/ n! p9 f, n6 i6 m9 {0 T2 x* ^3 G
h/ `1 m+ y- l( l1 |2 f( r8 o把test.txt文件扔进垃圾箱,赋空值test.txt
Q; k) W: `: P# Xcat /dev/null > /etc/test.txt
* |5 x* ~7 q! M; L! R+ Y
# t$ a8 Y% @. b) t# e
6 I! s/ D6 p2 o G& |' ~* zcat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。( e9 \; u" \2 X# K3 E: Z
( G' |3 X# c1 I& U) ~, _
比如:
9 N' k4 Z' I+ {6 F: d- T9 f e) {5 }
de>[root@localhost ~]# cat /etc/fstabde>/ K Z/ F2 n; @ I4 C$ r9 S
为了便于新手弟兄灵活掌握这个工具,我们多说一点常用的参数;/ L8 t+ A( f6 b& R# r1 p* B
1 l' v) \& ^; ], j4 D' M
+ y$ T4 ^. T5 l0 L8 J/ M- \' h1.0 cat 语法结构;
/ A P( T8 r0 p- }' @6 j2 [
: q2 {8 r! c5 t: C$ ~de>cat [选项] [文件]...de>
$ e7 W9 Y* p# `; F; n选项" T: Q% p" t6 ]* ^: C
-A, --show-all 等价于 -vET
6 D9 W+ J9 v9 U/ E/ x s, c-b, --number-nonblank 对非空输出行编号. D" _! |0 D8 A6 b, \9 K
-e 等价于 -vE
' E) w* D4 V. n7 }: l9 x-E, --show-ends 在每行结束处显示 $
0 ]$ O" r1 }1 l R: r-n, --number 对输出的所有行编号9 i# k2 H2 P9 X
-s, --squeeze-blank 不输出多行空行. {' O; w* ~0 @; E O c* x
-t 与 -vT 等价- T4 [# Y. Q6 V+ g7 ~% H
-T, --show-tabs 将跳 字符显示为 ^I
; `) q% q7 ?4 d-u (被忽略)
+ L, g) H2 _6 ]-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
2 Q0 w3 r! @% w! Q, v3 M$ J/ @- c--help 显示此帮助信息并离开4 d' _- u0 n, _2 H6 u+ f5 R' B
. @1 i. b2 t" n f7 ] v" P; r1.1 cat 查看文件内容实例;
# ]/ D7 m' q' J( o, V- d* B
! z5 A4 L1 B, w- s3 r0 T9 zde>[root@localhost ~]# cat /etc/profile 注:查看/etc/目录下的profile文件内容;
4 L4 ^7 {5 D: C: I% r% d) o[root@localhost ~]# cat -b /etc/fstab 注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始;
2 _. { H, w8 K- p. B[root@localhost ~]# cat -n /etc/profile 注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示;
2 P |& k" _7 V% W! |, D$ ~3 _[root@localhost ~]# cat -E /etc/profile 注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号;de>
9 U8 B s" ?. `) d% m- G3 S9 Q. g9 ~9 jcat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;+ n2 X7 }; Y% B. L( o, [
9 Y# }% v$ a* ]4 \/ \- |de>[root@localhost ~]# cat -n /etc/profile
- H& {& L; l, Y; W& s5 j[root@localhost ~]# nl /etc/profilede>
6 {, {" n# m8 U% U7 hcat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;
' i: o, x, c9 e1 \4 s" n7 M( m9 g8 J( J& k- n' B4 s) `- `) W
de>[root@localhost ~]# cat /etc/fstab /etc/profilede>8 ?9 N, c8 l4 w# F6 c. C `
cat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;
- x/ r% b% f% i( t2 z" I7 I( [" D: W% K0 C0 I1 U: P
de>[root@localhost ~]# cat /etc/fstab /etc/profile | morede>
* g% P! D K; O2 h: [! O
) ?) ~0 {% V0 V7 L5 N( q& \$ {: n1 Z3 ~1.2 cat 的创建、连接文件功能实例;
0 l0 C1 n! l+ t3 z" p$ h
% L+ y% S( S& u, o. P* c+ R3 c5 w! C: d6 X5 f3 u2 s. e* u8 V
cat 有创建文件的功能,创建文件后,要以EOF或STOP结束;, S4 B. y9 o7 o" l2 ` c/ C
" y) Y) Y; M6 Y# s5 Vde>[root@localhost ~]# cat > linuxsir.org.txt << EOF 注:创建linuxsir.org.txt文件;
# ?5 u9 V# G: P' |9 M) x" A5 X> 我来测试 cat 创建文件,并且为文件输入内容; 注:这是为linuxsir.org.txt文件输入内容;: M E+ Y2 P, V# m2 P( l
> 北南南北 测试; 注:这是为linuxsir.org.txt文件输入内容;4 M5 Q0 Z* O+ R9 z6 @
> EOF 注:退出编辑状态;1 o5 s8 P* ?- T
# L9 F5 g% R8 a, a* Y, i9 D1 |/ Z
[root@localhost ~]# cat linuxsir.org.txt 注:我们查看一下linuxsir.org.txt文件的内容;1 e/ ~/ a5 K. ?1 [
. Q$ E) O- g- k7 \: d, D我来测试 cat 创建文件,并且为文件输入内容;
T& _# w5 ~$ d p北南南北 测试;de>; x* n( v: ^6 u
cat 还有向已存在的文件追加内容的功能;9 @& e z3 P' m0 Q
& q) C" r# R7 J |0 S
de>[root@localhost ~]# cat linuxsir.txt 注:查看已存在的文件linuxsir.txt 内容;% K; U3 [* }5 h n/ I3 w8 B+ }8 F
I am BeiNanNanBei From LinuxSir.Org . 注:内容行
6 I4 A& W) G- }' c6 P& c5 j我正在为cat命令写文档4 M$ G$ L7 W$ b: l+ Q9 Q
& x" E: g9 R, X( i. Q
( z4 i# U8 ^* ^ s5 Q/ h
[root@localhost ~]# cat >> linuxsir.txt << EOF 注:我们向linuxsir.txt文件追加内容;
, q4 x, g# ]5 E* O8 H> 我来测试cat向文档追加内容的功能; 注:这是追回的内容: y# U4 o* V" |" N9 p1 b6 z, Q
> OK?* ?& |5 l% ^" M0 Q8 o) y
> OK~% u* p+ V/ u' l6 _: R3 O
> 北南 呈上' `! t. j M) F! I4 i( {
> EOF 注:以EOF退出;
# i/ m6 J1 B) P9 e& R6 w% ]/ i. f* R' o3 \+ I
7 K- f- h ~2 ]) @4 q/ F- o' }[root@localhost ~]# cat linuxsir.txt 注:查看文件内容,看是否追回成功。' J- L' |- _ u$ z: S) ~
I am BeiNanNanBei From LinuxSir.Org .0 M. k( f3 g$ e. W% E
我正在为cat命令写文档
7 z% s7 d5 I% Y, Q6 O9 q/ z) K5 j
# _ R- j! p& Z$ T g我来测试cat向文档追加内容的功能;
/ D* b5 Y! t( U# I2 T( B, m8 }OK?
: ?" s4 k! @, E/ S) N, j# TOK~
9 r; \5 i+ }3 ]* u北南 呈上de>; \5 x+ V' i2 F) L4 I* L' G
- I, o' X) C( T+ K
3 Y9 J! q8 l9 F# l& B+ t: b& q6 ~% X& V
cat 连接多个文件的内容并且输出到一个新文件中;
6 ?$ W* f4 q9 y) @+ T7 D) Z
' B6 J F2 G; m) o假设我们有sir01.txt、sir02.tx和sir03.txt ,并且内容如下;( q0 c' Z4 q# \$ Y0 d& N
/ e0 `; x0 C3 [# @de>[root@localhost ~]# cat sir01.txt
2 ]3 o1 k. L5 e- F, x/ e4 X123456
7 N6 F9 l( e* o; V0 g# j J8 ri am testing9 x @* ]/ P j+ w+ v$ p
. F; V# r* k3 ]8 {0 r1 F
[root@localhost ~]# cat sir02.txt
3 Y. h) O3 q1 m56789
$ E- ], g: U% N' u: d$ ^0 F) R2 vBeiNan Tested
( C6 v' F6 }& @" w7 j7 `# z* [0 } l3 I, a D
[root@localhost ~]# cat sir03.txt0 h9 q- @1 q5 w, ~7 z3 f) f, {+ [
098761 l2 y# z) A/ J5 i0 g, u& Q
linuxsir.org testingde>
9 _1 W% K% b4 F- s1 O; V! |. k& z我想通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。
8 Z: O4 _; \6 Z* g( z2 y+ S2 a) T5 t1 J& x
注意:其原理是把三个文件的内容连接起来,然后创建sir04.txt文件,并且把几个文件的内容同时写入sir04.txt中。特别值得一提的是,如果您输入到一个已经存在的sir04.txt 文件,会把sir04.txt内容清空。
" v- A( m# E! G1 h- B/ W* p, ]/ h1 p1 O( b! c
de>[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt
+ l% e( _, d' F( `# }
1 v( B( c. S+ N[root@localhost ~]# more sir04.txt6 ^' E$ b/ e2 j: `1 N& N2 m$ d O+ G
123456" y- e" P8 v! Y& a& x6 [; E" A$ |
i am testing2 R+ b% L' V$ Y& }
56789! h) k( ?1 |4 R% a% q
BeiNan Tested) k, d" H' Y0 m& p
09876
+ B9 f, ]1 C5 S8 w- i$ b5 b5 Ilinuxsir.org testingde>
; {4 {( y# {+ z- ]5 U" M/ a: S* g! fcat 把一个或多个已存在的文件内容,追加到一个已存在的文件中
* w' \6 G3 W3 I) a8 D& {6 n0 i4 W; h! x+ |/ b
de>[root@localhost ~]# cat sir00.txt1 }6 I5 f- H) P9 k; d) C7 j% J
linuxsir.org forever+ c* t/ ?* a: g7 \: r
2 |* u2 ]1 m6 q6 `) h8 L' l! \
[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt2 U L6 _& z# \3 M3 F
7 ^9 z( h& v: _[root@localhost ~]# cat sir00.txt
) h3 [; n3 P& a* flinuxsir.org forever1 e# V, q% s- g* l; y/ v: R
123456# ]1 E b% w$ \; k
i am testing4 @0 M) _9 I9 }$ r# m0 V
56789
[4 w: U' |3 D7 }/ |BeiNan Tested
/ t7 z$ \! J! i' Z09876+ E D) r# d9 P3 Q4 \, o
linuxsir.org testingde>
' U3 j& {. ^0 n& a8 B. h y/ X警告:我们要知道>意思是创建,>>是追加。千万不要弄混了。造成失误可不是闹着玩的;. b9 K( v3 T ~4 b8 @ D0 Z! y
|
|