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