侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux下cut命令用法详解:如何从文件或标准输入中提取列

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命令不能处理嵌套的分隔符,例如双引号、括号等,除非使用其他工具来处理这些分隔符。
0

评论区