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 开始。范围可以写成 NN-M-MN-

按字符截取

示例文件 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

参考资料