Linux下的重定向和管道

来源:互联网 发布:广州恒大淘宝俱乐部 编辑:程序博客网 时间:2024/05/16 10:40

工具:CentOS 7.3

基础知识:程序的运行离不开数据,那么程序是如何获得数据和输出数据的呢?在Linux之中,提供了三种标准的输入输出设备,对应关系如下:

标准输入(standinput) -0 默认接受来自键盘的输入。

标准输出(standoutput) -1 默认输出到终端窗口。

标准错误(standerror) -2 默认输出到终端窗口。

但是,Linux提供了可以重定向的方法,可以改变默认的位置。

一、使用符号‘>’,将输出重定向到文件。其中1>表示重定向正确信息,2>表示重定向错误信息。


还可以使用符号‘2>’将两个标准输出合并。


注意:前面的符号‘>’在导入时是将文件中的之前的内容覆盖掉,如果不进行覆盖,只进行追加,需要使用符号‘>>’。

二、使用<来重定向标准输入

由于后面要用到tr命令,所以在此处简要描述。

tr转换和删除字符
tr[OPTION]... SET1 [SET2]
选项:
-c–C --complement:取字符集的补集
-d--delete:删除所有属于第一字符集的字符
-s--squeeze-repeats:把连续重复的字符以单独一个字符表示
-t--truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符
[:alnum:]:字母和数字[:alpha:]:字母[:cntrl:]:控制(非打印)字符[:digit:]:数字[:graph:]:图形字符[:lower:]:小写字母[:print:]:可打印字符[:punct:]:标点符号[:space:]:空白字符[:upper:]:大写字母[:xdigit:]:十六进制字符



三、管道符 |

管道(使用符号“|”表示)用来连接命令,格式为:命令1 | 命令2 | 命令3 | …可以将上一个命令的标注输出传递到下一条命令作为参数(从左至右)。


接下来使用管道符实现计算1+2+3+..+99+100的总和。


其中,命令echo {1..100}实现输出1 到 100 的数字;命令echo {1..100} | tr ' ' '+' 实现将数字之间的间隔符空格转换成符号‘+’;命令echo {1..100} | tr ' ' '+' | bc实现将1+2+3+...+100作为参数通过管道符传递给bc(计算器)作为参数进行计算。

原创粉丝点击