Linux cut 命令

17 Mar 2025 | 4 分钟阅读

Linux cut 命令用于从文件中选择特定列。它按字节位置、字符和字段来切割特定部分,并将它们写入标准输出。它会切割一行并提取文本数据。必须为其传递一个参数,否则它将显示错误消息。

要切割特定部分,必须指定分隔符。分隔符将决定文本文件中各部分是如何分隔的。分隔符可以是空格 (' ')、连字符 (-)、斜杠 (/) 或其他任何字符。在 '-f' 选项后,会提到列号。

语法

选项

cut 命令使用以下命令行选项来使其更具体:

-b, --bytes=LIST: 用于按字节切割特定部分。

-c, --characters=LIST: 用于选择指定的字符。

-d, --delimiter=DELIM: 用于按分隔符切割特定部分。

-f, --fields=LIST: 用于选择特定字段。它还会打印任何不包含分隔符字符的行,除非指定了 -s 选项。

-n: 用于忽略任何选项。

--complement: 用于对选定的字节、字符或字段集进行取反。

-s, --only-delimited: 用于不打印没有分隔符的行。

--output-delimiter=STRING: 此选项用于使用 STRING 作为输出分隔符;默认是使用“输入分隔符”。

-z, --zero-terminated: 当行分隔符是 NUL 而不是换行符时使用。

--help: 用于显示帮助手册。

--version:用于显示版本信息。

cut 命令示例

让我们看一些 cut 命令的例子

使用连字符 (-) 作为分隔符

要使用连字符 (-) 作为分隔符进行切割,请执行以下命令

考虑以下命令

从上述命令中,输出将被从连字符 (-) 处截断。考虑以下输出

Linux Cut Filter

从上面的输出可以看出,我们的分隔符是连字符 (-),因此我们在 (-d) 后面使用了 (-)。命令 "cut -d- -f1 marks.txt" 显示第一列,命令 "cut -d- -f2 marks.txt" 显示第二列。

使用空格作为分隔符

如果我们想使用空格作为分隔符,那么我们必须在 cut 命令中用引号括起空格 (' ')。要使用空格作为分隔符切割输出,请执行以下命令

考虑以下命令

从上述命令中,输出将在指定列的空格处被截断。上述命令将产生以下输出

Linux Cut Filter2

从上面的输出可以看出,我们的分隔符是空格;因此我们在 (-d) 后面使用了 (' ')。命令 "cut -d ' ' -f2 exm.txt" 显示第二列,命令 "cut -d ' ' -f5 exm.txt" 显示第五列。

按字节切割

'-b' 选项用于按字节切割行的一部分。要按字节位置切割文件,请执行以下命令

考虑以下命令:

上面的命令将按指定的字节位置切割行。考虑以下输出

Linux Cut Filter

按字符切割

'-c' 选项用于按字符切割特定部分。但是,这些字符参数可以是数字或数字范围,逗号分隔的数字列表,或任何其他字符。

要按指定字符切割,请执行以下命令

考虑以下命令

上面的命令将按指定的字符切割行。考虑以下输出

Linux Cut Filter

从上面的输出可以看出,第一个命令从每一行切割第一个和第六个字符,第二个命令从第一行切割到第三个字符。

按补集模式切割

'--complement' 选项用于按补集进行切割。此选项受 BSD 版本的 cut 支持。要按补集模式切割,请执行以下命令

补集模式可以是字节、字符或字段的列表。

考虑以下命令:

上面的命令将按第一个字符切割文件。考虑以下输出

Linux Cut Filter
下一个主题Linux grep