cut - 按字节、字符或字段截取文本
cut 用于从每一行中选取指定的字节、字符或字段。
常用参数
-b LIST、--bytes=LIST:按字节位置选取。-c LIST、--characters=LIST:按字符位置选取。-d DELIM、--delimiter=DELIM:指定字段分隔符,默认是制表符。-f LIST、--fields=LIST:选取字段,通常与-d一起使用。--complement:选取指定范围以外的内容。-s、--only-delimited:不输出不含分隔符的行。--output-delimiter=STRING:指定输出字段之间的分隔符。
位置从 1 开始。范围可以写成 N、N-M、-M 或 N-。
按字符截取
示例文件 test.txt:
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 alex 68 98# 第二个字节
cut -b 2 test.txt
# 第 3 到第 5 个字节
cut -b 3-5 test.txt
# 从第 3 个字符到行尾
cut -c 3- test.txt
# 从行首到第 4 个字符
cut -c -4 test.txt处理多字节文本时优先使用 -c;按字节截取可能切断一个多字节字符。
按字段截取
示例文件 test2.txt:
No;Name;Mark;Percent
01;tom;69;91
02;jack;71;87
03;alex;68;98# 以分号分隔,显示第二个字段
cut -d ';' -f 2 test2.txt
# 显示第二个字段以外的内容
cut -d ';' -f 2 --complement test2.txt