Linux cut命令介绍
cut
命令是一个命令行实用程序,它允许你从指定的文件或管道数据中剪切出部分内容,并将结果打印到标准输出。该命令通过字段、分隔符、字节位置和字符来剪切行的部分。
Linux cut命令适用的Linux版本
cut
命令在所有主流的Linux发行版中都可以使用,包括但不限于Ubuntu, Debian, Fedora, CentOS等。如果你发现你的系统中没有预装这个命令,你可以通过包管理器来安装它。例如,在基于Debian的系统中,你可以使用apt-get
来安装:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install coreutils
在CentOS 7中,你可以使用yum
来安装:
[linux@bashcommandnotfound.cn ~]$ sudo yum install coreutils
在CentOS 8中,你可以使用dnf
来安装:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install coreutils
Linux cut命令的基本语法
cut
命令的基本语法如下:
cut [option] [file]
其中,[option]
是必须的,否则命令会输出错误。[file]
是你想要处理的文件的名称。如果不指定文件名,cut
命令会从标准输入读取,此时cut
会过滤管道。如果你指定了多个文件名,cut
命令会连接请求的内容。
Linux 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选项允许你指定不同的输出分隔符 |
Linux cut命令的实例
实例1:按字节剪切
[linux@bashcommandnotfound.cn ~]$ echo 'how-to geek' | cut -b 5
这个命令会输出字符串"how-to geek"的第5个字节,也就是"t"。
实例2:按范围剪切
[linux@bashcommandnotfound.cn ~]$ echo 'how-to geek' | cut -b 5-11
这个命令会输出字符串"how-to geek"的第5个到第11个字节,也就是"to geek"。
实例3:按字段剪切
[linux@bashcommandnotfound.cn ~]$ echo 'how-to geek' | cut -d' ' -f2
这个命令会输出字符串"how-to geek"的第2个字段(以空格为分隔符),也就是"geek"。
实例4:按字段剪切,使用自定义分隔符
[linux@bashcommandnotfound.cn ~]$ echo 'how-to-geek' | cut -d'-' -f2
这个命令会输出字符串"how-to-geek"的第2个字段(以"-“为分隔符),也就是"to”。
实例5:按字段剪切,使用自定义分隔符,并且只显示包含分隔符的行
[linux@bashcommandnotfound.cn ~]$ echo -e 'how-to-geek\nhowtogeek' | cut -d'-' -f2 -s
这个命令会输出字符串"how-to-geek\nhowtogeek"的第2个字段(以"-“为分隔符),并且只显示包含”-“的行,也就是"to”。
实例6:按字节剪切,使用补集选项
[linux@bashcommandnotfound.cn ~]$ echo 'how-to geek' | cut -b 1-3 --complement
这个命令会输出字符串"how-to geek"的除了第1个到第3个字节以外的所有字节,也就是"-to geek"。
实例7:按字段剪切,使用自定义输入
[linux@bashcommandnotfound.cn ~]$ echo 'how-to-geek' | cut -d'-' -f2
这个命令会输出字符串"how-to-geek"的第2个字段(以"-“为分隔符),并且使用”:“作为输出分隔符,也就是"to”。
Linux cut命令的注意事项
- 在处理非英文的文件或命令输出时,注意文件或命令输出的区域设置。在非英文语言中,剪切字符或字节可能会产生错误的输出,如果该字符的长度超过一个字节。
- 如果你在尝试使用
cut
命令时遇到了"bash: cut: command not found"的错误,那么你可能需要安装coreutils
包来获取cut
命令。
Linux cut相关命令
- awk命令:模式扫描和处理语言
- sed命令:流编辑器
- grep命令:文本搜索工具
- tr命令:字符转换
- sort命令:对文本文件行排序
- uniq命令:报告或省略重复行
- paste命令:并排合并文件的行
- join命令:在两个文件中,按照共有字段合并行
- comm命令:比较两个已排序文件的行
- expand命令:将制表符转换成空格
更多详细内容可以参考:
linux入门学习教程 - Linux入门自学网
Linux下cut命令用法详解:如何从文件或标准输入中提取列