- 论坛徽章:
- 1
|
shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
cat:显示文件内容,创建文件,还可以用它来显示控制字符。
注意:在文件分页符处不会停下来;会一下显示完整个文件。因此,可以使用m o r e命令或把c a t命令的输出通过管道传递到另外一个具有分页功能的命令中,使用命令less file可实现相同的功能。
如下形式
- $ cat myfile | more
- 或
- $ cat myfile | pg
复制代码
c a t命令的一般形式为:
- cat [options] filename1 ... filename2 ...
复制代码
1、显示名为m y f i l e的文件:
2、显示m y f i l e 1、m y f i l e 2、m y f i l e 3这三个文件,可以用:
- $ cat myfile1 myfile2 myfile3
复制代码
3、创建一个包含上述三个文件的内容,名为b i g f i l e的文件,可以用输出重定向到新文件中:
- $ cat myfile1 myfile2 myfile3 > bigfile
复制代码
4、如果cat的命令行中没有参数,输入的每一行都立刻被cat命令输出到屏幕上,输入完毕后按< C T R L - D >结束
- $ cat
- Hello world
- Hello world
- <ctrl+d>
- $
复制代码
5、新建文件
- $cat >myfile
- This is great
- <ctrl-d>
- $cat myfile
- This is great
复制代码
cat:参数选项
使用方式:
- cat [-AbeEnstTuv] [--help] [--version] fileName
复制代码
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting 显示非打印字符
例:
显示时加上行号
- $cp /etc/httpd/conf/httpd /usr/sam
- $ cat -n httpd.conf
复制代码
把 httpd.conf 的内容加上行号后输入 httpd1.conf 这个文件里
- $cat -n httpd.conf > httpd1.conf
复制代码
对文件httpd.conf加上行号(空白不加)后显示
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
- $ cat -b textfile1 textfile2 >> textfile3
复制代码
清空/etc/test.txt档案内容
- $cat /dev/null > /etc/test.txt
复制代码
使用 sed 与 cat 除去空白行
- $ cat -s /etc/X11/XF86Config | sed '/^[[:space:]]*$/d'
复制代码
-s项我试了一下,不成功,不知是不是用错了
其它参数来自:(这个我没试)
http://bbs.chinaunix.net/forum/viewtopic.php?t=438463&highlight=cat
cat 还可以在您查看包含如制表符这样的非打印字符的文件时起帮助作用。您可以用以下选项来显示制表符:
* -T 将制表符显示为 ^I
* -v 显示非打印字符,除了换行符和制表符,它们使用各自效果相当的“控制序列”。例如,当您处理一个在 Windows 系统中生成的文件时,这个文件将使用 Control-M(^M)来标记行的结束。对于代码大于 127 的字符,它们的前面将会被加上 M-(表示“meta”),这与其它系统中在字符前面加上 Alt- 相当。
* -E 在每一行的结束处添加美元符($)。
显示非打印字符
- $ cat -t /etc/X11/XF86Config
- ...
- # Multiple FontPath entries are allowed (they are concatenated together)
- # By default, Red Hat 6.0 and later now use a font server independent of
- # the X server to render fonts.
- ^IFontPath^I"/usr/X11R6/lib/X11/fonts/TrueType"
- ^IFontPath^I"unix/:7100"
- EndSection
- ...
复制代码
- $ cat -E /etc/X11/XF86Config
- ...
- # Multiple FontPath entries are allowed (they are concatenated together)$
- # By default, Red Hat 6.0 and later now use a font server independent of$
- # the X server to render fonts.$
- $
- FontPath "/usr/X11R6/lib/X11/fonts/TrueType"$
- FontPath "unix/:7100"$
- $
- EndSection$
- ...
复制代码
- $ cat -v /etc/X11/XF86Config
- ...
- ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@M-|M-8^X^@^@^@
- P^@^O"M-X^O M-@^M^@^@^@M-^@^O"M-@M-k^@M-8*^@
- @M-^H$M-@M-9|A(M-@)M-yM-|M-sM-*M-hW^A^@^@j^@
- M-|M-sM-%1M-@M-9^@^B^@^@M-sM-+fM-^A= ^@ ^@
- F^@^@ ^@M-9^@^H^@^@M-sM-$M-G^E(l!M-@M-^?
- ^IM-A5^@^@^D^@PM-^]M-^\X1M-H%^@^@^D^@tyM-G
- ...
复制代码 |
|