Linux/Unix 中的 Pipe、Grep 和 Sort 命令示例
什么是 Linux 中的 Pipe?
Pipe 是 Linux 中的一个命令,它允许您使用两个或多个命令,使得一个命令的输出成为下一个命令的输入。简而言之,每个进程的输出就像管道一样直接作为下一个进程的输入。符号 ‘|’ 表示管道。
Pipe 帮助您同时组合两个或多个命令并连续运行它们。您可以使用强大的命令,这些命令可以瞬间执行复杂的任务。
让我们通过一个例子来理解这一点。
当您使用 ‘cat’ 命令查看一个跨越多页的文件时,提示符会快速跳转到文件的最后一页,您看不到中间的内容。
为避免这种情况,您可以将 ‘cat’ 命令的输出通过管道传递给 ‘less’,它每次只会显示一屏内容。
cat filename | less
举个例子就清楚了。
如果视频无法访问,请点击此处
‘pg’ 和 ‘more’ 命令
您也可以使用 ‘less’ 替代。
cat Filename | pg
或
cat Filename | more
您可以通过按 Enter 键来逐段查看文件内容并滚动。
‘grep’ 命令
假设您想从一个文本文件中搜索特定信息,例如邮政编码。
您可以手动浏览内容来查找信息。更好的选择是使用 grep 命令。它会扫描文档以查找所需信息,并以您想要的格式显示结果。
语法
grep search_string
让我们看看它的实际效果——
在这里,grep 命令在文件 ‘sample’ 中搜索了字符串 ‘Apple’ 和 ‘Eat’。
此命令可以使用以下选项。
选项 | 函数 |
---|---|
-v | 显示所有不匹配搜索字符串的行 |
-c | 仅显示匹配行的数量 |
-n | 显示匹配行及其编号 |
-i | 匹配大小写(大写和小写) |
-l | 仅显示包含该字符串的文件名 |
让我们在上面使用的相同文件上尝试第一个选项 ‘-i’——
使用 ‘i’ 选项,grep 已从所有行中过滤了字符串 ‘a’(不区分大小写)。
‘sort’ 命令
此命令有助于按字母顺序对文件内容进行排序。
此命令的语法是
sort Filename
考虑一个文件的内容。
使用 sort 命令
此命令还有扩展,如下所示。
选项 | 函数 |
---|---|
-r | 反向排序 |
-n | 数字排序 |
-f | 不区分大小写的排序 |
下面的示例显示了文件 ‘abc’ 中内容的逆序排序。
什么是过滤器?
Linux 有很多过滤器命令,如 awk、grep、sed、spell 和 wc。过滤器从一个命令获取输入,进行一些处理,然后给出输出。
当您将两个命令通过管道连接时,“过滤后”的第一个命令的输出将传递给下一个命令。
让我们借助示例来理解这一点。
我们有以下文件 ‘sample’
我们想突出显示不包含字符 ‘a’ 的行,但结果应为逆序。
为此,可以使用以下语法。
cat sample | grep -v a | sort - r
让我们看看结果。
摘要
- 管道 ‘|’ 将一个命令的输出作为另一个命令的输入。
- 过滤器从一个命令获取输入,进行一些处理,然后给出输出。
- grep 命令可用于在文本文档中查找字符串和值
- 通过 grep 进行管道连接是最常见的用法之一
- ‘sort’ 命令按字母顺序对文件内容进行排序
- less、pg 和 more 命令用于将长文件分成可读的块