Linux Cut 命令使用综合指南

Linux Cut 命令使用综合指南

Linux 中的 cut 命令是文本处理的重要实用程序,旨在从文件的每一行或管道输入中提取特定的段。此命令不会修改原始文件,而是读取数据并在标准输出中显示所需的部分。在本指南中,我们将深入探讨 Linux 中 cut 命令的功能,并提供实际的示例来演示其用法。

探索 cut 命令

对于任何处理结构化文本的人来说,cut命令cut都非常有用,它有助于在类 Unix 环境中有效地操作和提取数据。cut 可以根据字节位置、字符位置、分隔符或字段提取行中的部分内容,在 Shell 脚本和命令行操作中过滤和组织数据方面非常实用。它的应用范围很广,从检索 CSV 文件中的特定列到修剪不必要的字符或分析日志。虽然 cut 通常直接用于文件,但在管道中使用时,它也可以与其他命令的输出无缝交互。

cut 命令的基本语法

cut 命令很简单,使用选项加上文件名。语法如下:

cut [OPTIONS] [FILE]

在此结构中,OPTIONS 指定了 cut 命令的操作方式,允许您选择字段分隔符(例如逗号)、选择特定字段、设置范围以及排除缺少分隔符的行等。如果未指定文件,cut 将从标准输入读取。此外,您还可以提供多个文件,这些文件将被视为组合实体进行处理。

常用选项

剪切命令提供了多种选项,可以精确定位要提取的文本片段。以下是一些最常用的选项:

  • -f–fields=LIST:允许根据指定的分隔符选择特定字段。
  • -b–bytes=LIST:从每一行提取指定的字节。
  • -c–characters=LIST:从每一行检索特定字符。
  • -d–delimiter:设置自定义分隔符而不是默认制表符。
  • –complement:输出除指定字段、字节或字符之外的所有内容。
  • -s–only-delimited:跳过缺少分隔符的行;默认情况下包含此类行。
  • –output-delimiter:允许选择不同的输出分隔符,与输入分隔符形成对比。

-f-b和选项-c使用 LIST 来定义要提取的内容。您可以指定以下内容:

  • 单个数字,例如 2。
  • 用逗号分隔的多个数字,例如 1, 3, 5。
  • 类似 2-4 的范围(提取从 2 到 4 的值)。
  • N-表示从位置 N 提取到末尾。
  • -M表示从起始点提取至位置 M。

在 Linux 中使用 cut 命令

为了说明 cut 命令的功能,让我们执行一些实际示例。首先,我们使用 echo 命令创建一个名为“mte.csv”的示例文件:

echo -e "empID, empName, empDesig\n101, Anees, Author\n102, Asghar, Manager\n103, Damian, CEO" > mte.csv

回显命令

接下来,我们可以使用 cat 命令检查文件的内容:

cat mte.csv

显示文件数据

值得一提的是,cut 命令仅仅显示指定的输出,而不会改变文件本身。

按字符提取数据

要按位置提取字符,请使用-ccut 命令的选项:

cut -c 1, 8 mte.csv

此命令从每行中提取第一个和第八个字符:

按字符剪切

要提取指定范围内的字符,请应用以下命令:

cut -c 1-8 mte.csv

提取每行中位置 1 至 8 的字符:

按范围切割

按字节提取

要提取特定字节,请使用-bcut 命令的选项:

cut -b 1-3 mte.csv

此命令从文件的每一行中提取前三个字节mte.csv

按字节剪切

按字段(列)提取

要从文件中提取整个字段,请使用带有-f-d选项的 cut 命令:

cut -d', ' -f2 mte.csv

在此命令中,-d', '指定逗号作为分隔符,而-f2表示 cut 应从每行中提取第二个字段:

按字段剪切

在 cut 中实现自定义分隔符

虽然 cut 默认使用制表符作为分隔符,但如果字段由其他字符分隔,请使用-d指定正确的字符。例如,要从空格分隔的句子中提取第五个单词,可以使用:

echo "Hey! Geeks Welcome to Maketecheasier.com" | cut -d ' ' -f 5

使用自定义分隔符剪切

提取过程中排除特定字段

你可以在从文件中提取文本时省略某些字段,只需--complement在 cut 命令中使用相应选项即可。此选项指定 cut 命令输出除指定字段之外的所有字段:

cut -d', ' -f1 mte.csv --complement

此命令跳过第一列并返回其余内容:

补码切割

修改默认输出分隔符

默认情况下,提取字段时,cut 命令会在输出中保留输入分隔符。但是,您可以使用以下--output-delimiter选项更改输出分隔符:

cut -d', ' -f1-3 --output-delimiter='-' mte.csv

此命令使用连字符作为输出中的分隔符:

自定义输出分隔符

将 cut 与其他 Linux 命令结合使用

cut 命令还可以与其他 Linux 命令结合使用,使用管道符 | 。例如,以下命令从命令的每个输出行中提取前五个字符who

who | cut -c 1-5

与谁一起剪辑

在另一个示例中,您可以将 cut 命令与 head 一起使用来显示“mte.csv”的前两行,仅提取 empName 和 empDesig 字段:

head -n 2 mte.csv | cut -d ', ' -f2, 3

用头砍

使用 Linux cut 命令浏览不规则数据格式

cut 命令在处理格式正确且使用一致分隔符(例如逗号或制表符)的数据时效果显著。但是,如果遇到空格不一致或分隔符混合的文件,单独使用 cut 命令可能会产生不理想的结果。为了解决这些问题,通常建议提前使用tr或 之类的命令清理数据sed,以确保 cut 命令能够有效地提取正确的部分。

管理多余空间

考虑一个名为“mteData.txt”的文件,其中字段由不同的空格分隔:

cat mteData.txt

显示示例数据

由于 cut 预期单个分隔符,因此tr在应用 cut 之前利用它对间距进行规范化:

cat mteData.txt | tr -s ' ' | cut -d ' ' -f1-2

此命令处理“mteData.txt”,使用将多个空格替换为一个空格tr,然后提取前两个字段:

用 Tr 切割

管理混合分隔符

如果文件同时使用空格和逗号,请使用 规范化格式sed。例如,名为“mteData1.txt”的文件包含:

cat mteData1.txt

显示示例内容

利用sedcut 将所有空格转换为逗号,然后提取第一个和第三个字段:

sed 's/ /, /g' mteData1.txt | cut -d ', ' -f1, 3

使用 Sed 进行剪切

结论

在本文中,我们探索了 Linux cut 命令的功能,它是从文件或管道输入中提取数据的重要工具。其简单的语法让您可以轻松地根据指定的分隔符获取字符、字节或字段。此外,我们还展示了如何将 cut 命令与其他实用程序(例如trsed和 )结合使用head,以管理不干净的数据并实现更高效的输出。无论您是处理 CSV 文件、分析日志还是清理数据,cut 命令都是类 Unix 环境中文本处理不可或缺的工具。

常见问题

1. Linux 中 cut 命令的主要用途是什么?

Linux 中的 cut 命令主要用于从文件或其他命令的输出中提取特定的文本部分。它使用户能够根据分隔符、字节位置或字符位置有效地操作和格式化数据。

2.我可以将 cut 命令与其他 Linux 命令结合使用吗?

是的!cut 命令可以使用管道符号 (|) 与其他 Linux 命令无缝集成。这可以实现强大的数据处理功能,让您能够过滤和格式化各种命令的输出。

3.如何在使用 cut 命令时指定自定义分隔符?

您可以使用 选项后跟所需的分隔符来指定自定义分隔符-d。例如,要使用逗号作为分隔符,您可以使用-d', '

来源和图片

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注