如何在Linux中使用cut命令进行文本切割?
- 行业动态
- 2025-01-30
- 4211
cut 命令是 Linux 系统中一个非常实用的文本处理工具,主要用于从文本文件或标准输入中截取出特定字段、字节或字符,并将结果输出到标准输出。
基本语法
cut [选项] [文件]
如果不指定文件名,cut 命令将从标准输入读取数据。
常用选项
-b:以字节为单位进行分割。cut -b 5
将输出每行的第 5 个字节。
-c:以字符为单位进行分割。cut -c 1-5
将输出每行的第 1 至第 5 个字符。
-d:自定义分隔符,默认为制表符。cut -d, -f 2
将以逗号作为分隔符,并提取第二列。
-f:选择指定的段,如果选择多个段使用 “,” 分隔。cut -f 1,3
将提取第一列和第三列。
–complement:显示所有字节、字符或字段,除了选定的部分。
-s:只输出包含分隔符的行。
–output-delimiter:指定输出的分隔符,默认为输入的分隔符。
示例
1、按字节剪切:
echo 'how-to geek' | cut -b 5
这个命令会输出字符串 "how-to geek" 的第 5 个字节,也就是 "t"。
2、按范围剪切:
echo 'how-to geek' | cut -b 5-11
这个命令会输出字符串 "how-to geek" 的第 5 个到第 11 个字节,也就是 "to geek"。
3、按字段剪切:
echo 'how-to geek' | cut -d' ' -f2
这个命令会输出字符串 "how-to geek" 的第 2 个字段(以空格为分隔符),也就是 "geek"。
4、按字段剪切,使用自定义分隔符:
echo 'how-to-geek' | cut -d'-' -f2
这个命令会输出字符串 "how-to-geek" 的第 2 个字段(以 "-" 为分隔符),也就是 "to"。
5、按字段剪切,使用自定义分隔符,并且只显示包含分隔符的行:
echo -e 'how-to-geek howtogeek' | cut -d'-' -f2 -s
这个命令会输出字符串 "how-to-geek
howtogeek" 的第 2 个字段(以 "-" 为分隔符),并且只显示包含 "-" 的行,也就是 "to"。
6、按字节剪切,使用补集选项:
echo 'how-to geek' | cut -b 1-3 --complement
这个命令会输出字符串 "how-to geek" 的除了第 1 个到第 3 个字节以外的所有字节,也就是 "-to geek"。
7、按字段剪切,使用自定义输入:
echo 'how-to-geek' | cut -d'-' -f2
这个命令会输出字符串 "how-to-geek" 的第 2 个字段(以 "-" 为分隔符),并且使用 ":" 作为输出分隔符,也就是 "to"。
注意事项
在处理非英文的文件或命令输出时,注意文件或命令输出的区域设置,在非英文语言中,剪切字符或字节可能会产生错误的输出,如果该字符的长度超过一个字节。
如果发现系统中没有预装 cut 命令,可以通过包管理器来安装它,在基于 Debian 的系统中,可以使用apt-get install coreutils
;在 CentOS 7 中,可以使用yum install coreutils
;在 CentOS 8 中,可以使用dnf install coreutils
。
相关FAQs
Q1:cut命令可以同时指定多个不同的分隔符吗?
A1:不可以,cut命令一次只能指定一个分隔符,如果需要处理多种分隔符的情况,可能需要结合其他命令进行处理。
Q2:cut命令可以处理二进制文件吗?
A2:可以,cut命令可以处理二进制文件,但需要注意的是,二进制文件中的字节可能不是可打印字符,因此在处理二进制文件时需要特别小心。