Linux/Unix 中的管道、Grep 和排序命令及其示例
⚡ 智能摘要
Linux 和 Unix 中的 pipe、grep 和 sort 命令可以链接和过滤文本:pipe 将一个命令的输出传递给下一个命令,grep 搜索模式,sort 排列行,而 filters 则转换它们之间的数据。

管道、grep 和 sort 是 Python 中最常用的工具之一。 Linux 命令行之所以重要,是因为它们可以将零散的命令连接成一个强大的工作流程。本页将通过示例解释每个命令行,然后展示过滤器如何将它们组合在一起。
Linux 中的管道是什么?
在 Linux 系统中,管道(pipe)命令允许你使用两个或多个命令,其中一个命令的输出作为下一个命令的输入。简而言之,每个进程的输出直接作为下一个进程的输入,就像一条管道。符号“|”表示管道。
管道可以让你同时连接两个或多个命令,并依次执行它们。你可以使用功能强大的命令,快速完成复杂的任务。
让我们通过一个例子来理解这一点。
当您使用“cat”命令查看跨越多页的文件时,提示符会快速跳转到文件的最后一页,而您看不到中间的内容。
为了避免这种情况,你可以将“cat”命令的输出通过管道传递给“less”命令,这样一次只会显示一个滚动长度的内容。
cat filename | less
图示会更清晰。下图展示了管道如何将一个命令的输出传递给下一个命令。
‘pg’ 和 ‘more’ 命令
除了“less”之外,您还可以使用 pg 或 more 命令:
cat Filename | pg
or
cat Filename | more
然后,您可以将文件分段查看,只需按回车键即可向下滚动。下面的屏幕截图显示了使用 more 命令分页显示的文件。
‘grep’ 命令
假设你想在文本文件中查找特定信息,例如邮政编码。
您可以自行手动浏览内容。 trac收集信息。更好的选择是使用…… grep的 该命令会扫描文档以获取所需信息,并以您所需的格式呈现结果。
语法:
grep search_string
让我们看看实际效果。下面的屏幕截图显示了搜索结果。
这里,grep 命令在文件“sample”中搜索字符串“Apple”和“Eat”。该命令可以使用以下选项。
| 附加选项 | 功能 |
|---|---|
| -v | 显示所有与搜索字符串不匹配的行 |
| -c | 仅显示匹配行数 |
| -n | 显示匹配的行及其编号 |
| -i | 匹配大小写字母 |
| -l | 仅显示带有字符串的文件名称 |
让我们对上面使用的同一个文件尝试使用“-i”选项。下面的屏幕截图显示了不区分大小写的结果。
使用“-i”选项,grep 从所有行中过滤掉了字符串“a”(不区分大小写)。
‘sort’ 命令
此命令有助于按字母顺序对文件内容进行排序。
此命令的语法是:
sort Filename
请看下面用 cat 表示的文件内容。
运行排序命令会将这些行按字母顺序排列,如下所示。
该命令还有一些扩展命令,它们列在下面。
| 附加选项 | 功能 |
|---|---|
| -r | Reverse排序 |
| -n | 按数字排序 |
| -f | 不区分大小写的排序 |
下面的例子显示对文件‘abc’中的内容进行反向排序。
什么是过滤器?
Linux 有很多过滤命令,例如 awk、grep、sed、spell 和 wc。过滤器接收来自某个命令的输入,进行一些处理,然后给出输出。
当您使用管道连接两个命令时,第一个命令的“过滤”输出会传递给下一个命令。下图展示了过滤器如何在管道中发挥作用。
让我们通过一个例子来理解这一点。我们有一个名为“sample”的文件,如下所示(使用 cat 命令)。
我们只想高亮显示不包含字符“a”的行,但结果顺序要相反。为此,可以使用以下语法:
cat sample | grep -v a | sort -r
让我们来看一下结果,如下截图所示。







.png)
.png)

