Linux 中的 cut 命令 – 完整使用指南

在本教程中,我们将讨论如何使用 Linux 中的命令。 cut 命令用于基于 Linux 或 Unix 的操作系统。 “剪切”只是意味着从特定事物中剪下一部分。 同样在 Linux 中,cut 命令用于从文件中截取一部分,或者我们可以说打印特定部分或特定行。 该命令于 1982 年首次出现在 AT&T System III UNIX 中。

您可能正在考虑如何剪切这些部分。 这些部分可以根据字节位置、字符位置或分隔符进行切割。 考虑下面给出的示例:

SDLC stands for Software development life cycle. Testing is used to identify and eliminate defects. Hello Linux World.  

现在,您要打印特定行的特定部分。 假设您想从这些行中打印 SDLC、Testing 和 hello。 因此,为此,我们将使用 cut 命令。 考虑其他示例:打印行中的单个字母,即 S、T 和 H,打印放置在任何位置的特定字母等等。

的语法命令如下:

$ cut [option] [filename] 

别担心,我们将进一步讨论 cut 命令中使用的选项。 这里,’-c 1-‘ 是与 cut 命令一起使用的选项。

让我们讨论一下在 命令:

  • -c(-字符):用于打印一组或一系列字符,或特定字符。
  • -b(–字节):用于通过指定字节来打印一组或范围的字符。
  • -f(-字段):用于通过指定字段编号或范围来打印字符集。
  • -d(–分隔符): 用于指定与“-f”选项组合的分隔符。
  • -补充: 打印那些没有被选中的字符。
  • –输出分隔符: 用于将输入分隔符替换为输出分隔符。

考虑 Hello.txt 文件中的以下语句,我们将在示例中进一步使用它们。

Linux is operating system echo command is one of the Linux based command Many people in India has been affected by Corona Virus Testing helps to identify, understand and eliminated software defect. 

在 Linux 中使用 cut 命令按字符剪切

让我们了解如何选择一列字符。 为此,我们使用与所需字符数相关的“-c”选项。 例如,您要打印位于第一个位置的字符,即 L、e、M、T。因此,语法将是:

$ cut -c 1 hello.txt 

在这里,它将只打印该行的第一个字符。 您需要在“-c”选项之后指定列号或位置。

打印第二个位置指定的字符

如上所述,我们可以使用“-c”选项打印任何列。 在这里,我想在行中打印第二个字符。 我所做的只是说明了列号。 在 Linux 的 cut 命令中。 其语法如下:

$ cut -c 2 hello.txt 
剪辑2

它将在第二个位置打印字符,即 i,c,a,e。

在 Linux 中使用 cut 命令打印前“n”个字符

到目前为止,我们已经讨论了如何在特定位置打印字符。 现在,如果你想打印前 n 个字符怎么办。 我们只需要指定 n 的值。

其语法如下:

$ cut -c-8 hello.txt 
Cut8

在这里,它将打印前 8 个字符,包括空格。 请记住,“n”可以是任何数字。

在多列中打印字符

让我们讨论如何打印位于不同位置的字符。 为此,您只需指定不同的位置,即 2、3、6 或任何位置。

其语法如下:

$ cut -c 2,5,7 hello.txt 
切割257

在此示例中,将打印位于第 2、第 5 和第 7 位的字符。

考虑另一个例子。 假设我们要在位置 1、2、3、4 打印字符。 所以我们只需要指定位置编号,如下图所示。 其语法如下:

$ cut -c 1,2,3,4 hello.txt 
切1234

在 Linux 中使用 cut 命令打印一系列字符

到目前为止,我们已经学会了如何在不同的位置打印字符。 现在,让我们看看如何在 Linux 中使用 cut 命令打印范围内的字符。 为此,只需指定范围,即范围的开始和结束位置,如下图所示。

其语法如下:

$ cut -c 1-5 hello.txt 
切特兰奇

[1-5] 指定范围。 “1”是开始位置,“5”是结束位置。 因此,它将打印指定范围的字符。

如何在 Linux 中使用 cut 命令按字节剪切?

您可能会对按字节切割和按字符切割之间的区别感到困惑。 一个字节有 8 位,它可以保存从 -128 到 127 的值,但一个 char 变量可以保存 0 到 255 之间的任何值,即 256 个字符。 八位称为一个字节。

一字节字符集包含 256 个字符。 当前遵循的标准是 UNICODE,它使用两个字节来表示所有书写系统中的所有字符。 由于此次升级,基于 Unicode 格式(Unicode-16 或 Unicode-32),字节大小的范围为每个字符 1 到 4 个字节。 例如,“Ü”字符占用 2 个字节,而“u”仅占用 1 个字节。 我希望区别很明显。

在下图中,使用“-b”通过指定位置来剪切一个部分。

其语法如下:

$ cut -b 1 hello.txt 
Cutb1

在 Linux 中使用 cut 命令打印多个字节

让我们了解如何使用 Linux cut 命令打印在不同位置指定的字符。 您必须指定字节位置,如下图所示。

其语法如下:

$ cut -b 1,2,3,4 hello.txt 
Cutb1234

在给定的示例中,字符仅占用 1 个字节。 它没有任何特殊字符。 因此,它将根据字节数打印位于指定位置的字符。

打印指定范围内的字节

至此,我们已经了解了如何根据指定位置的字节来剪切或提取字符。 让我们了解如何使用 Linux cut 命令打印范围内的字节。 如下图所示,需要指定起始字节位置和结束字节位置。

其语法如下:

$ cut -b 1-4 hello.txt  
切布兰奇

在 Linux 中使用 cut 命令从其他命令中剪切管道输出

考虑一个示例,您希望在给定字符串中打印特定字符。 您可能正在考虑如何将两个命令结合起来。 我们使用’|’ (管道运算符)将一个命令的输出传递给另一个。 考虑下面给出的语法:

$ cmd1 | cmd2 

命令 1 的输出将作为命令 2 的输入。因此,’|’ 用于将第一个命令的输出作为输入传输到第二个。 同样,我们将使用它来使用 -b 选项打印特定字符。

其语法如下:

$ echo "HelloWorld" | cut -b 5  
Linux echo 中的剪切命令

它将打印“HelloWorld”字符串中的第 5 个字节,即“o”。

使用 -b 选项打印前 n 个字节

如上所述,我们了解了如何打印在字符串中特定位置指定的字符。 在这里,我们将讨论如何打印“n”个字节。 ‘-‘ 用在指定的数字之前,它打印从开始到第 n 个位置的字节。

其语法如下:

$ echo "HelloWorld" | cut -b -5 
酷酷5

在上面给出的示例中,它将从开始到第 5 个位置打印最多 5 个字节。

如何使用 Linux 剪切命令按字段剪切

到目前为止,我们一直在讨论如何提取字符,但我们可以使用“-f”和“-d”选项来提取整个字段,而不是选择字符。 ‘-d’ 代表分隔符。 分隔符是一个或多个字符的序列,用于指定纯文本中单独的独立区域之间的边界。 例如,“,”、“”是一种分隔符。 考虑下面给出的示例:

$ cut -d " " -f 1 hello.txt 
剪切1

在这里,它将打印字符串被空格分隔符“分隔”后的第一个字段。

在 Linux 中使用 Cut 命令打印一系列字段

如前所述,我们将结合“-d”和“-f”选项来打印字段。 因此,要打印字段数,您必须指定开始和结束位置。 考虑下面给出的例子,这里给出了范围 [1-3]. 因此它将打印从第一个位置到第三个位置的字段。 请注意,它不会计算字符而不是它会计算字段。

语法如下:

$ cut -d " " -f 1-3 hello.txt 
剪辑2

Linux 中 cut 命令的补充选项

补码选项将输出与先前选项输出的相反的内容。 例如,下面我用过 -c 3 剪切并显示前 3 个字符。 预期的输出是 “所有的”. 但由于 Linux 中 cut 命令的“–complement”选项,您会看到不包括前 3 个字符的文本。

其语法如下:

echo "Hello Journaldev" | cut -c -3 --complement 
切补切补

替换 Linux cut 命令输出中的现有分隔符

您可能对此感到困惑,它只是意味着用另一个定界符替换定界符。 考虑下面的一个例子。 在这里,我们将“”分隔符替换为“$”分隔符。 我们可以使用“–output-delimiter”选项来执行以下操作。

其语法如下:

$ cut -d " " -f 1,2 hello.txt --output-delimiter="$" 
剪切输出

在这里,“”将替换为输出中的“$”分隔符

检查 Linux cut 命令版本

Linux 中有不同版本的 cut 命令,如 GNU、BSD 等。 要检查我们正在使用的剪辑版本,使用“–version”命令。

其语法如下:

$ cut --version 
剪辑版

将 Linux cut 命令输出重定向到文件

我们还可以使用“>”输出重定向符号将 Linux 中 cut 命令的输出存储在文件中。 此符号用于将任何命令的输出发送到文件。 考虑下面给出的示例,我们的 Linux cut 命令将输出重定向到 c.txt 文件。

语法如下:

$ cut -d " " -f 1,2 hello.txt --output-delimeter="$" > c.txt  
割猫

结论

在本教程中,我们已经完成了如何使用剪切 Linux 中的命令。 我们希望您现在知道如何有效地使用该命令。 如果您有任何疑问,请在评论中告诉我们。 如果您正在寻找更详细的信息,您可以随时参考手册页。