cut
命令是一个命令行实用程序,它允许你从指定的文件或管道数据中剪切出部分内容,并将结果打印到标准输出。该命令通过字段、分隔符、字节位置和字符来剪切行的部分。
cut
命令在所有主流的Linux发行版中都可以使用,包括但不限于Ubuntu, Debian, Fedora, CentOS等。如果你发现你的系统中没有预装这个命令,你可以通过包管理器来安装它。例如,在基于Debian的系统中,你可以使用apt-get
来安装:
[[email protected] ~]$ sudo apt-get install coreutils
在CentOS 7中,你可以使用yum
来安装:
[[email protected] ~]$ sudo yum install coreutils
在CentOS 8中,你可以使用dnf
来安装:
[[email protected] ~]$ sudo dnf install coreutils
cut
命令的基本语法如下:
cut [option] [file]
其中,[option]
是必须的,否则命令会输出错误。[file]
是你想要处理的文件的名称。如果不指定文件名,cut
命令会从标准输入读取,此时cut
会过滤管道。如果你指定了多个文件名,cut
命令会连接请求的内容。
以下是cut
命令的一些常用选项¹²:
选项 | 描述 |
---|---|
-f (–fields=LIST) | 使用指定的字段、字段集或字段范围进行选择 |
-b (–bytes=LIST) | 使用指定的字节、字节集或字节范围进行选择 |
-c (–characters=LIST) | 使用指定的字符、字符集或字符范围进行选择 |
-d (–delimiter) | 用于指定分隔符,而不是默认的TAB分隔符 |
–complement | 当指定时,此选项指示cut显示所有字节、字符或字段,除了所选的 |
-s (–only-delimited) | 默认设置是打印不包含分隔符字符的行。指定-s选项指示cut不打印不包含分隔符的行 |
–output-delimiter | 默认情况下,cut使用输入分隔符作为输出分隔符。指定–output-delimiter选项允许你指定不同的输出分隔符 |
以下是一些cut
命令的实例¹²:
[[email protected] ~]$ echo 'how-to geek' | cut -b 5
这个命令会输出字符串"how-to geek"的第5个字节,也就是"t"。
[[email protected] ~]$ echo 'how-to geek' | cut -b 5-11
这个命令会输出字符串"how-to geek"的第5个到第11个字节,也就是"to geek"。
[[email protected] ~]$ echo 'how-to geek' | cut -d' ' -f2
这个命令会输出字符串"how-to geek"的第2个字段(以空格为分隔符),也就是"geek"。
[[email protected] ~]$ echo 'how-to-geek' | cut -d'-' -f2
这个命令会输出字符串"how-to-geek"的第2个字段(以"-“为分隔符),也就是"to”。
[[email protected] ~]$ echo -e 'how-to-geek\nhowtogeek' | cut -d'-' -f2 -s
这个命令会输出字符串"how-to-geek\nhowtogeek"的第2个字段(以"-“为分隔符),并且只显示包含”-“的行,也就是"to”。
[[email protected] ~]$ echo 'how-to geek' | cut -b 1-3 --complement
这个命令会输出字符串"how-to geek"的除了第1个到第3个字节以外的所有字节,也就是"-to geek"。
[[email protected] ~]$ echo 'how-to-geek' | cut -d'-' -f2 --output-delimiter=':'
这个命令会输出字符串"how-to-geek"的第2个字段(以"-“为分隔符),并且使用”:“作为输出分隔符,也就是”:to:"。
cut
命令时遇到了"bash: cut: command not found"的错误,那么你可能需要安装coreutils
包来获取cut
命令。更多详细内容可以参考:
linux入门学习教程 - Linux入门自学网
Linux下cut命令用法详解:如何从文件或标准输入中提取列