Linux cut命令介绍
cut命令是一个用来从文件或标准输入中提取列的工具,它可以按照字节、字符或字段的位置来选择一行的某一部分,并将这些部分输出到标准输出。cut命令常用于处理文本文件,例如提取日志文件、配置文件、密码文件等中的某些列或字段。cut命令还可以与其他Linux命令结合使用,例如sort、uniq、grep等,实现更复杂的功能¹²。
适用的Linux版本
cut命令是一个标准的POSIX命令,它在大多数的Linux发行版中都是可用的,包括Ubuntu、Debian、Fedora、CentOS、Red Hat等。如果某些Linux系统没有预装cut命令,可以通过安装coreutils包来获取它。安装命令如下:
- 对于使用apt-get的系统(如Ubuntu、Debian),可以执行:
sudo apt-get install coreutils
- 对于使用yum的系统(如CentOS、Red Hat),可以执行:
sudo yum install coreutils
- 对于使用dnf的系统(如Fedora),可以执行:
sudo dnf install coreutils
Linux cut命令的基本用法
cut命令的语法格式如下:
cut [选项]... [文件]...
如果没有指定文件,cut命令将从标准输入读取数据。必须指定-b、-c或-f选项之一。
Linux cut命令的常用选项说明
cut命令有很多选项,可以用来控制cut命令的行为和输出。以下是一些常用的选项:
选项 | 说明 |
---|---|
-b list | 按字节位置提取列,可以指定多个列,例如 -b 1-5,10-15 表示提取第1至5列和第10至15列的内容。 |
-c list | 按字符位置提取列,可以指定多个列,例如 -c 1-5,10-15 表示提取第1至5列和第10至15列的内容。 |
-d delimiter | 指定字段分隔符,默认是制表符 t ,可以用该选项指定其他分隔符。 |
-f list | 按字段位置提取列,与-d选项一起使用,指定显示哪个区域,例如 -f 1,3 表示提取第1和第3个字段。 |
--complement | 补充选择输出的列(即反选),该选项输出所有的列,除了指定的列。 |
--output-delimiter=string | 指定输出时使用的分隔符,默认和输入分隔符相同,可以用该选项指定其他分隔符。 |
--only-delimited | 只输出包含分隔符的行,不输出不包含分隔符的行。 |
Linux cut命令的实例
以下是一些使用cut命令的实例:
- 提取/etc/passwd文件中每一行的第一个字段(用户名),用冒号作为分隔符:
cut -d: -f1 /etc/passwd
输出类似于:
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
alvinliangxu...
- 提取/etc/passwd文件中每一行的第一和第七个字段(用户名和登录shell),用冒号作为分隔符:
cut -d: -f1,7 /etc/passwd
输出类似于:
root:/bin/bash
bin:/usr/sbin/nologin
daemon:/usr/sbin/nologin
adm:/usr/sbin/nologin
lp:/usr/sbin/nologin
sync:/bin/sync
shutdown:/sbin/shutdown
halt:/sbin/halt
mail:/usr/sbin/nologin
operator:/bin/bash
games:/usr/sbin/nologin
alvinliangxu:/bin/bash...
- 提取/etc/passwd文件中每一行的第一和第七个字段(用户名和登录shell),用冒号作为分隔符,用逗号作为输出分隔符:
cut -d: -f1,7 --output-delimiter=, /etc/passwd
输出类似于:
root,/bin/bash
bin,/usr/sbin/nologin
daemon,/usr/sbin/nologin
adm,/usr/sbin/nologin
lp,/usr/sbin/nologin
sync,/bin/sync
shutdown,/sbin/shutdown
halt,/sbin/halt
mail,/usr/sbin/nologin
operator,/bin/bash
games,/usr/sbin/nologin
alvinliangxu,/bin/bash...
- 提取content.txt文件中每一行的第一至七个字符:
cut -c 1-7 content.txt
输出类似于:
Ubuntu
Microso
OsX El
Unix
FreeBSD
- 提取content.txt文件中每一行的第二个字节:
cut -b 2 content.txt
输出类似于:
i
X
n
r
Linux cut命令的注意事项
- cut命令只能按照字节、字符或字段的位置来提取列,不能按照其他条件或模式来提取列。
- cut命令不能处理多字节字符,例如中文、日文等,除非使用-n选项来取消分割多字节字符。
- cut命令不能处理变长的分隔符,例如空格、制表符等,除非使用正则表达式来指定分隔符。
- cut命令不能处理嵌套的分隔符,例如双引号、括号等,除非使用其他工具来处理这些分隔符。
评论区