cut命令用于从文件或标准输入中读取文本,使用指定的分隔符来显示参数指定的列

例如:

cat test.txt 
1,2,3,4,5
5,6,7,8,9
10,11
cat test.txt | cut -d ',' -f1,3
1,3
5,7
10

常用参数:

  • -d 指定分隔符
  • -f 指定需要输出的列(字段),可以指定单个,多个和范围的列,如-f1(第一列),-f1,3(第一三列),-f1-4(第一到四列),-f-3(第一到三列),-f2-(第二道末尾列)
  • -b 指定需要输出的字节
  • -c 指定需要输出的字符
  • z 使用NUL(0字符)分隔,一般为了防止分隔的字符串里面有分隔符,如find . -name '*.txt' -print0 | cut -z -c1-5 | tr '\0' '\n'

注意:

  1. 只有当操作域时(-f选项)才可以指定输入分界符
  2. -f,-b,-c只能使用1个
  3. 无法直接使用cut分隔空白字符,一般先用sed替换,如ps -ef | sed 's/\s\s*/ /g' | cut -d ' ' -f2,但是通常这种情况我们使用awk,如ps -ef | awk '{print $2}'

参考:

https://stackoverflow.com/questions/7142735/how-to-specify-more-spaces-for-the-delimiter-using-cut

https://linuxhandbook.com/cut-command/