Linux/Unix 中的 Pipe、Grep 和 Sort 命令示例

什么是 Linux 中的 Pipe?

Pipe 是 Linux 中的一个命令,它允许您使用两个或多个命令,使得一个命令的输出成为下一个命令的输入。简而言之,每个进程的输出就像管道一样直接作为下一个进程的输入。符号 ‘|’ 表示管道。

Pipe 帮助您同时组合两个或多个命令并连续运行它们。您可以使用强大的命令,这些命令可以瞬间执行复杂的任务。

让我们通过一个例子来理解这一点。

当您使用 ‘cat’ 命令查看一个跨越多页的文件时,提示符会快速跳转到文件的最后一页,您看不到中间的内容。

为避免这种情况,您可以将 ‘cat’ 命令的输出通过管道传递给 ‘less’,它每次只会显示一屏内容。

cat filename | less 

举个例子就清楚了。

What is a Pipe in Linux

如果视频无法访问,请点击此处

‘pg’ 和 ‘more’ 命令

您也可以使用 ‘less’ 替代。

cat Filename | pg 

cat Filename | more

您可以通过按 Enter 键来逐段查看文件内容并滚动。

'pg' and 'more' commands

‘grep’ 命令

假设您想从一个文本文件中搜索特定信息,例如邮政编码。

您可以手动浏览内容来查找信息。更好的选择是使用 grep 命令。它会扫描文档以查找所需信息,并以您想要的格式显示结果。

语法

grep search_string

让我们看看它的实际效果——

The 'grep' command

在这里,grep 命令在文件 ‘sample’ 中搜索了字符串 ‘Apple’ 和 ‘Eat’。

此命令可以使用以下选项。

选项 函数
-v 显示所有不匹配搜索字符串的行
-c 仅显示匹配行的数量
-n 显示匹配行及其编号
-i 匹配大小写(大写和小写)
-l 仅显示包含该字符串的文件名

让我们在上面使用的相同文件上尝试第一个选项 ‘-i’——

使用 ‘i’ 选项,grep 已从所有行中过滤了字符串 ‘a’(不区分大小写)。

The 'grep' command

‘sort’ 命令

此命令有助于按字母顺序对文件内容进行排序

此命令的语法是

sort Filename

考虑一个文件的内容。

The 'sort' command

使用 sort 命令

The 'sort' command

此命令还有扩展,如下所示。

选项 函数
-r 反向排序
-n 数字排序
-f 不区分大小写的排序

下面的示例显示了文件 ‘abc’ 中内容的逆序排序。

The 'sort' command

什么是过滤器?

Linux 有很多过滤器命令,如 awk、grep、sed、spell 和 wc。过滤器从一个命令获取输入,进行一些处理,然后给出输出。

当您将两个命令通过管道连接时,“过滤后”的第一个命令的输出将传递给下一个命令。

What is a Filter

让我们借助示例来理解这一点。

我们有以下文件 ‘sample’

What is a Filter

我们想突出显示不包含字符 ‘a’ 的行,但结果应为逆序。

为此,可以使用以下语法。

cat sample | grep -v a | sort - r

让我们看看结果。

What is a Filter

摘要

  • 管道 ‘|’ 将一个命令的输出作为另一个命令的输入。
  • 过滤器从一个命令获取输入,进行一些处理,然后给出输出。
  • grep 命令可用于在文本文档中查找字符串和值
  • 通过 grep 进行管道连接是最常见的用法之一
  • ‘sort’ 命令按字母顺序对文件内容进行排序
  • less、pg 和 more 命令用于将长文件分成可读的块