Bash grep 命令

有时我们需要在日志、文本等文件中搜索特定的关键字、短语或模式。本文将展示如何使用单行 Bash 脚本在文件中查找特定的关键字、短语或模式。

此外,我们将通过相关示例和解释来讨论该主题。

Bash 中的 grep 命令

为了在文件中搜索特定的关键字、短语或模式,Bash 脚本中有一个专门的命令 grep。我们可以使用此命令显示特定文件中匹配的关键字之前和之后的行。

该命令使用诸如 -A-B-C 之类的标志。我们将在下面看到这些的使用。

下面分享了使用普通 grep 关键字的示例。

$ grep 'KEYWORD' /YourPath/to/file.txt

在上面的示例中,我们在文件名 file.txt 上查找单词 KEYWORD。运行该命令后,你将获得一个输出,其中包含标记了每个匹配项的文件内容。

$ grep -B 4 'KEYWORD' /YourPath/to/file.txt

在上面新更新的示例中,我们在文件名 file.txt 上查找单词 KEYWORD。但不同之处在于我们使用了一个标志 -B 4,它告诉命令显示匹配前的 4 行。

运行该命令后,你将获得一个输出,其中包含标记了每个匹配项的文件内容。

$ grep -A 2 'KEYWORD' /YourPath/to/file.txt

在我们的最后一个示例中,我们在文件名 file.txt 上查找单词 KEYWORD。但不同之处在于我们使用了一个标志 -A 2,它告诉命令在匹配后显示 2 行。

运行该命令后,你将获得一个输出,其中包含标记了每个匹配项的文件内容。

可以与此命令一起使用的另一个标志是 --color。此标志的目的是为找到的匹配项提供颜色。

请注意,本文中使用的所有代码都是用 Bash 编写的。它只能在 Linux Shell 环境中运行。

Bash Tee 命令

Bash 中有一个名为 tee 的特殊命令,它可以从标准输入读取并以标准格式将输出写入一个或多个文件。它还通过管道与其他命令一起使用。

本文将详细介绍 tee 命令。此外,我们将查看一些示例和解释,以使它们更易于理解。

Bash 中的 tee 命令

tee 命令的一般语法是 tee YOUR_OPTIONS YOUR_FILE_NAME。此命令的可用选项是:

  1. -a – 也称为 --append,告诉命令不要覆盖文件并附加到提供的文件。
  2. -i – 也称为 --ignore 中断,用于忽略中断信号。

下面分享了一个 tee 命令的基本示例。

df -H | tee disk_usage.txt

在上面共享的示例中,我们只运行 tee disk_usage.txt 文件。运行示例代码后,你将获得以下输出。

Filesystem      Size  Used Avail Use% Mounted on
rootfs          198G  120G   79G  61% /
none            198G  120G   79G  61% /dev
none            198G  120G   79G  61% /run
none            198G  120G   79G  61% /run/lock
none            198G  120G   79G  61% /run/shm
none            198G  120G   79G  61% /run/user
tmpfs           198G  120G   79G  61% /sys/fs/cgroup
C:\             198G  120G   79G  61% /mnt/c
E:\             178G   26G  153G  15% /mnt/e
F:\             278G  152G  127G  55% /mnt/f
G:\             278G   17G  262G   6% /mnt/g

在 Bash 中使用 tee 命令写入多个文件

你还可以使用 tee 命令写入多个文件。为此,你可以按照以下示例进行操作。

command | tee file1.txt file2.txt file3.txt

在上面共享的示例中,我们编写了三个名为 file1.txtfile2.txtfile3.txt 的文件。

在 Bash 中使用 tee 命令附加文件

命令 tee 还使我们能够附加文件。为此,你可以按照以下命令进行操作。

command | tee -a file.txt

正如我们已经讨论过的,-a 标志表示附加操作。

在 Bash 中使用 tee 命令忽略中断

你可以按照下面共享的代码忽略命令执行中不必要的中断。

command | tee -I file.txt

在执行期间通过 Ctrl+C 停止命令时非常有用。

在 Bash 中使用 tee 命令隐藏输出

不想 tee 在标准模式下写输出?只需将其重定向到 /dev/null 并按照以下命令进行操作。

command | tee file.txt >/dev/null

本文中使用的所有代码都是用 Bash 编写的。它只能在 Linux Shell 环境中运行。