加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Shell脚本 cat命令解析

(2013-04-10 00:00:00)
标签:

it

分类: Shell脚本
今天,jonas来学习一个比较简单一点 cat 的命令吧,但是蚊子再小也是肉。

cat 普遍被用于创建简单文件,而且文本操作相当不方便,但不妨碍它作为一个成功的简单小命令。

cat 其本质只是用来链接文件和写入文件,不过当jonas从标准输入写入文件时就顺便创建了文件。

先看一下它的语法:

 cat [OPTION] [FILE]...

1. -A --show-all:相当于-vET,效果就是将所有的控制字符打印出来。
2. -E --show-ends:在每一行末尾显示$符号
3. -T --show-tabs:将所有TAB字符置换为^I
4. -v --show-nonprinting:用^显示所有控制字符,除了TAB(跳格)和LFD(换行),并且在高位集的字符前用M-标记

示例1:

建立目标文件
jonas@jonas-ID43A:~/Documents$ cat > aim.sh
jonas
jonas
jonas
jonas   jonas
jonas@jonas-ID43A:~/Documents$ cat -t aim.sh
jonas
^Ijonas
^I^Ijonas
^Ijonas^Ijonas
jonas@jonas-ID43A:~/Documents$ cat -E aim.sh
jonas$
jonas$
jonas$
jonas jonas$
jonas@jonas-ID43A:~/Documents$ cat -A aim.sh
jonas$
^Ijonas$
^I^Ijonas$
^Ijonas^Ijonas$

(控制字符这个。。。jonas也不知道该怎么在文本里打进去,要不就用c 将控制字符打入文件吧)

5. -b --number-nonblank:在所有非空行之前显示行号,从1开始
6. -n --number:在所有行之前显示行号(包括空行),从1开始,不过在-b --number-nonblank参数前失效

示例2:

接下来jonas修改了一下目标文件
jonas@jonas-ID43A:~/Documents$ cat >> aim.sh

     
jonas

jonas
jonas@jonas-ID43A:~/Documents$ cat -b aim.sh
     1 jonas
     2 jonas
     3 jonas
     4 jonas jonas


     5 jonas

     6 jonas
jonas@jonas-ID43A:~/Documents$ cat -n aim.sh
     1 jonas
     2 jonas
     3 jonas
     4 jonas jonas
     5
     6
     7 jonas
     8
     9 jonas
jonas@jonas-ID43A:~/Documents$ cat -nb aim.sh
     1 jonas
     2 jonas
     3 jonas
     4 jonas jonas


     5 jonas

     6 jonas


7. -e:效果和-vE一样
8. -t:效果与 -vT一样

以上两个参数有点废柴哈,jonas不多给示例了。

最后再来一个比较有用的参数
9. -s --squeeze-blank:简单来说就是压缩空行,将连续空行压缩成一行,但是并不修改源文件,只是在输出时候改变,方便查看文件内容。

示例3:

再次修改目标文件
jonas@jonas-ID43A:~/Documents$ cat > aim.sh











jonas
jonas@jonas-ID43A:~/Documents$ cat -s aim.sh

jonas


在区分二进制和文本文件的系统中,cat通常工作在二进制模式下,但是只要使用-bensAE其中一个参数就可以转换到文本文件模式下,或者从终端输入和输出也是可以达到同样的效果。








0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有