cut
是 Linux 中一个常用的文本处理命令,用来从文本文件或标准输入中提取指定的字段、字符或字节。它通常与其他命令(如 grep
、awk
等)结合使用,用于处理和过滤文本数据。
cut
命令的基本语法cut OPTION [FILE...]
常用选项:
-f
:指定要提取的字段(基于分隔符)。-d
:指定分隔符,默认是制表符(Tab)。-b
:按字节提取内容。-c
:按字符提取内容。--complement
:显示不在指定范围内的内容。cut
命令常用示例假设有一个以逗号分隔的 CSV 文件 data.csv
,内容如下:
name,age,gender
Alice,30,Female
Bob,25,Male
Charlie,35,Male
提取第 1 列(name 列):
cut -d',' -f1 data.csv
输出:
name
Alice
Bob
Charlie
提取第 2 列和第 3 列(age 和 gender 列):
cut -d',' -f2,3 data.csv
输出:
age,gender
30,Female
25,Male
35,Male
可以使用 -c
选项按字符提取。假设有一个文件 names.txt
,内容如下:
Alice
Bob
Charlie
提取前 3 个字符:
cut -c1-3 names.txt
输出:
Ali
Bob
Cha
-b
选项是基于字节的提取,但要注意字节与字符的区别,尤其在 UTF-8 等多字节编码中。对于纯 ASCII 文本,字符和字节可以视为一致。
假设文件 data.txt
内容为:
abcdefg
hijklmn
提取第 2 到第 4 个字节:
cut -b2-4 data.txt
输出:
bcd
ijk
使用 --complement
选项可以显示除指定列之外的内容。
显示除第 1 列之外的内容:
cut -d',' -f1 --complement data.csv
输出:
age,gender
30,Female
25,Male
35,Male