找回密码
 注册
关于网站域名变更的通知
查看: 358|回复: 1
打印 上一主题 下一主题

linux下cat命令详解

[复制链接]
  • TA的每日心情

    2019-11-19 15:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-12-4 09:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    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. |
  • TA的每日心情
    慵懒
    2020-6-13 15:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-12-4 10:28 | 只看该作者
    linux下cat命令详解
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 21:00 , Processed in 0.171875 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表