- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10 IO重定向
10 I/O重定向
I/O重定向是Shell编程中用于捕捉一个文件、命令、程序或脚本,甚至代码块的输出,然后把捕捉到的输出作为输入发送给另外一个文件、命令、程序或脚本等。
10.1、管道
管道是Linux编程中最常用的技术之一。
10.1.1、管道简介
管道技术是Linux的一种基本的进程间通信技术,它利用先进先出排队模型来指挥进程间的通信。对于管道,我们可以形象地把它们当做是连接两个实体的一个单向连接器。
Linux管道可用于应用程序之间、Linux命令之间,以及应用程序和Linux命令之间的通信,Shell编程主要是利用管道进行Linux命令之间的通信,其一般格式为:
command1 | command2 | command3 | ... |commandn
command1到commandn表示Linux的n个命令,这n个命令利用管道进行通信。command1执行完后,如果没有管道,command1的输出结果将直接显示在Shell上,当Shell遇到管道符“|”后,就将command1的输出发送给command2,作为command2的输入。
命令:ls -l | grep co #列出当前目录下的文件列表,并在其中查找与vi匹配的行
结果:-rwxrwxr-x 1 xiaomiao xiaomiao 344 8月 7 14:33 constant_exam1.sh
-rwxrwxr-x 1 xiaomiao xiaomiao 197 8月 8 10:08 continue_exam1.sh
-rwxrwxr-x 1 xiaomiao xiaomiao 180 8月 8 10:15 continue_exam2.sh
-rwxrwxr-x 1 xiaomiao xiaomiao 173 8月 8 10:19 continue_exam3.sh
命令:ls -l | grep co | wc -l #wc -l命令可统计结果的行数
结果:4
10.1.2、cat和more命令
cat和more命令都用来显示文件的内容,它们的基本格式为:
cat [option] fileName
more [option] [+linenum] fileNames
option指选项,more命令中+linenum可以指定显示文件的起始行,即从linenum这一行开始显示整个文件。
cat命令的选项名称及其意义:
-a #显示文件的所有内容
-b #由1开始对所有输出的行数编号,但对空白行不编号
-E #每一行末显示“$”
-n #由1开始对所有输出的行数编号
-s #当遇到有连续两行以上的空白行,就替换为一行空白行
-v #不可显示的字符(制表符、新行符和换页符除外)以可见的形式显示
more命令的选项名称及其意义:
-num #一次显示的行数
-d #提示使用者,在画面下方显示“Press space to continue,q to quit.”如果使
用者按错键,则会显示”Press h for instructions.”
-l #取消遇见特殊字元^L(送纸字元)时会暂停的功能
-f #计算行数时,以实际的行数,而非自动换行过后的行数(有些单行字数太长的
会被扩展为两行或两行以上)
-p #不以卷动的方式显示每一页,而是先清除屏幕后再显示内容
-c #跟-p相似,不同的是先显示内容,再清除其他旧资料
-s #当遇到有连续两行以上的空白行,就替换为一行空白行
-u #禁止显示强调符,即不显示下划线(跟据环境变量TERM指定的terminal而有
所不同)
+/ #在每个文件显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num #从第num行开始显示
两个命令最大的区别在于:cat命令在显示文件时不提供分页功能,而more命令在显示超过一页的文件时提供了分页功能。使用more命令时在最后一行提示—More(11%)--,表示已经显示了该文件内容的11%,用户可以按回车键浏览该文件的剩余内容。
cat命令还可以同时显示多个文件,命令格式为:cat file1 file2 ... filen
10.1.3、sed命令与管道
sed和awk命令都是从文件读取输入数据,同时也都能支持从管道获得输入数据。
文档评论(0)