在Linux中,将两个命令连接起来使用时,一个命令的输出作为另一个命令的输入,这就叫做管道。为了建立管道,两个命令之间使用|连接。
管道是Linux进程之间重要的通信机制,除了管道,还有共享内存,消息队列,信号量,套接字(socket)等进程通信机制。
能够接受数据,过滤(处理或筛选)后在输出的工具,称为过滤器。
grep是一个文本搜索工具,使用正则表达式进行全局检索,并把匹配的行打印出来。可以看看做是一个过滤器,其简单的使用就是检索包含固定字符的文本。该命令有很多选项:
选项 | 说明 |
---|---|
-v | 反转查询,输出不匹配的行。例如,grep -v "test" demo.txt 将输出不包含"test"的行。 |
-n | 输出匹配的行以及行号。 |
-l | 输出匹配的行所在的文件名。 |
-c | 输出匹配的总行数。 |
-i | 不区分大小写进行匹配。 |
sort命令
该命令将文件中的各行字母或数进行排序,可以从特定的文件,或者从stdin获取输入。通过下列的选项可以控制排序规则
选项 | 描述 |
---|---|
-n | 按照数字大小排序,例如,10会排在2后面;-n 选项会忽略空格或 tab缩进。 |
-r | 降序排序。sort 默认是升序排序。 |
-f | 不区分大小写。 |
+x | 对第x列(从0开始)进行排序。 |
管道的例子:
$ls -l | grep "Aug" | sort +4n
含义即将当前目录中八月份修改的文件按照大小排序,+4n表示对第5列按照数字大小排序。