命令行快速提示:从文件中剪切内容

这 Fedora 发行版是一个功能齐全的操作系统,具有出色的图形桌面环境。 用户可以轻松地指向并单击他们的方式来完成几乎任何典型任务。 所有这些美妙的易用性掩盖了强大命令行的细节。 本文是向您展示一些常用命令行实用程序的系列文章的一部分。 所以让我们进入shell,看看 .

通常,当您在命令行中工作时,您正在处理文本文件。 有时这些文件可能很长。 完整阅读它们虽然可行,但可能很耗时且容易出错。 在本期中,您将学习如何从文本文件中提取内容,并从中获取您想要的信息。

重要的是要认识到有很多方法可以完成类似的命令行任务 Fedora. 这 Fedora 存储库包括用于解析和处理文本的整个语言系统,作为 example. 此外,还有多个命令行实用程序可用于 shell 中可以想到的任何用途。 本文将只关注使用其中一些实用程序选项,从文件中提取一些信息并以可读格式呈现。

进行切割

为了说明这一点 example 在系统上使用标准的相当大的文件,例如 /etc/passwd。 如本系列前一篇文章中所见,您可以执行 cat 命令来查看整个文件:

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...

此文件包含有关系统上所有帐户的信息。 它有一个特定的格式:

name:password:user-id:group-id:comment:home-directory:shell

想象一下,您只想拥有系统上所有帐户名称的列表。 如果您只能从每一行中删除名称值。 这就是 cut 命令派上用场的地方! 此命令一次处理任何输入一行,并提取该行的特定部分。

cut 命令提供了用于以不同方式选择线条部分的选项,在此 example 其中两个是必需的,-d 是指定要使用的分隔符类型的选项,-f 是指定要剪切的行的哪个字段的选项。 -d 选项允许您声明分隔行中值的分隔符。 在这种情况下,冒号 (:) 用于分隔值。 -f 选项允许您选择要提取的字段值。 所以为此 example 输入的命令是:

$ cut -d: -f1 /etc/passwd
root
bin
daemon
adm
...

太好了,成功了! 但是您将打印输出到标准输出,这在终端会话中至少意味着屏幕。 如果您需要稍后完成另一项任务的信息怎么办? 如果有办法将 cut 命令的输出放入文本文件中进行保存,那就太好了。 对于这样的任务,有一个简单的内置 shell 函数,即重定向函数 (>)。

$ cut -d: -f1 /etc/passwd > names.txt

这会将 cut 的输出放入名为 names.txt 的文件中,您可以使用 cat 检查内容:

$ cat names.txt
root
bin
daemon
adm
...

通过两个命令和一个 shell 函数,可以很容易地使用 cat 识别,使用 cut 提取,并将提取的信息从一个文件重定向,并将其保存到另一个文件以供以后使用。

摄影者 乔尔·姆布瓜不飞溅.