shell之重定向和管道
来源:互联网 发布:知名网络玄幻小说作家 编辑:程序博客网 时间:2024/05/08 14:07
在linux中,输入源主要有两个:键盘和文件,输出源也对应有两个:文件和屏幕。在shell中,>代表输出,<代表输入。
1:重定向
重定向包含改变shell标准输入的来源和标准输出的去向的各种方式。默认情况下shell将命令的标准输入关联到键盘,标准输出关联到屏幕。
1.1:重定向输出
eg:cat > sample.txt
这句话的意思在于把键盘的输入输出到sample.txt文件中,当你输入上面的话后,键盘输入“HELLO WORLD”,然后退出,查看sample.txt,你可以发现在文件中有“HELLO WORLD”几个字。
当然,重定向使用“>”符号,会把原来文件中的内容销毁,也就是重写,如果想避免被重写,要使用noclobber命令。
1.2:重定向输入
通过标准输入符号“<”可以重定向输入来自指定的文件。
eg:cat < sample.txt
这句话的意思是吧sample.txt的内容作为标准输入输出内容到屏幕上。当你的文件中有“HELLO WORLD”几个字时,你可以看到屏幕输出了“HELLO WORLD”几个字。
1.3:关于追加
向文件中追加标准输出(>>)可以避免文件被重写。
比如orange这个文件中有一句话:this is an orange.peer这个文件有一句话:this is a peer
那么cat peer >> orange
输出
this is an orange
this is a peer。
2:管道
管道( | )是将一条命令的标准输出连接到另一个命令的标准输入。管道不产生中间文件。
语法为:command_a [arguments] | command_b [arguments]
与下面的命令结果相同
command_a [arguments] > temp
command_b [arguments] < temp
rm temp
第一条命令是吧命令a的结果重定向到中间文件temp,第二条命令是把temp作为命令b的输入,最后删除temp文件。
tr(translate)替换,比如 tr string1 string2就是把string1的每个字符依次替换为string2中的字符。
cat abstract | tr abc ABC
tr abc ABC < abstarct
上面两条命令都是把abstract中的a、b、c替换为A、B、C,是等价的。
在看一个利用管道实现过滤器功能的例子
who | sort | lpr
who是得到文件名 ,sort进行排序,最后按顺序打印,中间的sort实现了过滤器的功能
tee:实现双向输出
who | tee who.out
这个命令把who的结果分别送至标准输出和送至who.out文件保存。
- shell之重定向和管道
- shell管道和重定向
- shell的特性之十:输入输出重定向和管道
- shell重定向,管道
- shell 输出重定向和管道
- SHELL重定向和管道的实现
- Shell变量、数据重定向和管道
- Shell重定向和管道操作
- 命令行简介之重定向和管道
- shell 管道与重定向
- shell变量、重定向、管道
- 管道和重定向
- 重定向和管道
- 管道和重定向
- 管道和重定向
- 管道和重定向
- 重定向和管道
- 管道和重定向
- 第九周项目 员工薪水类
- [BZOJ1911][Apio2010]特别行动队(斜率优化dp)
- UVA - 490 Rotating Sentences
- mybatis 与 hibernate 比较
- 以代码爱好者的角度来看AMD和CMD
- shell之重定向和管道
- 1013 A strange lift
- poj 3259
- SAP MM 用户不希望采购订单一旦Release就自动打印输出,如何控制?
- ARM 指令集版本和ARM 版本
- 20160423
- bzoj 1036: [ZJOI2008]树的统计Count(树链剖分 点权)
- HDU 4358-I - Boring counting-dfs序+离线+树状数组/线段树
- 第九周项目1-深复制体验(3)