Shell脚本 cat命令解析
(2013-04-10 00:00:00)
标签:
it |
分类: Shell脚本 |
今天,jonas来学习一个比较简单一点 cat
的命令吧,但是蚊子再小也是肉。
cat [OPTION] [FILE]...
1
jonas
2
jonas
3
jonas
4
jonas jonas
5
jonas
6
jonas
1
jonas
2
jonas
3
jonas
4
jonas jonas
5
6
7
jonas
8
9
jonas
1
jonas
2
jonas
3
jonas
4
jonas jonas
5
jonas
6
jonas
cat 普遍被用于创建简单文件,而且文本操作相当不方便,但不妨碍它作为一个成功的简单小命令。
cat 其本质只是用来链接文件和写入文件,不过当jonas从标准输入写入文件时就顺便创建了文件。
先看一下它的语法:
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
jonas@jonas-ID43A:~/Documents$ cat -n aim.sh
jonas@jonas-ID43A:~/Documents$ cat -nb aim.sh
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其中一个参数就可以转换到文本文件模式下,或者从终端输入和输出也是可以达到同样的效果。