使用 cut
的时候必须指定下面三个选项的其中一个:
-b byte-list
根据字节截取-c character-list
根据字符截取-f field-list
根据段来就截取
上面的三个参数 byte-list
character-list
field-list
是用逗号隔开的一个或多个数字和范围组成(用-
连接的范围)。字节、字符和段的其实位置都是1
,也可以不给出完成的范围:-m
等同于 1-m
; n-
等同于 n
到行尾。
例如要截取标准输入行的2-5
间的字符
$ cut -b2-5 abcdefg #这里是标准输入 bcde
截取1-3
间的字符和第5
个字符
$ cut -c1-3,5 abcdefg abce
$ cat cut.txt James 23 Kobe 24 Wade 3 $ cut -c1-5 cut.txt James Kobe Wade
按段
截取,这里的段
是指每行用tab
制表符(默认)分隔的段。例如我们要截取第二个段
$ cat cut.txt James 23 Kobe 24 Wade 3 $ cut -f2 cut.txt 23 24 3
也可以指定分隔符,使用 -d
选项
$ cat cut.txt James,23 Kobe,24 Wade,3 $ cut -d,-f1 cut.txt # 指定分隔符,James Kobe Wade
当行中没有指定的分隔符时,可以使用 -s
选项来忽略处理此行
$ cat cut.txt James,3 NBA ALL STAR # 不使用 -s $ cut -d,-f1 cut.txt James Kobe Wade NBA ALL STAR # 使用 -s $ cut -d,-f1 -s cut.txt James Kobe Wade
cut
往往在脚本中与管道结合起来使用是很方便的,例如要获取一个文件有多少行
$ wc -l config.json 7 config.json # 如果只想要数字就可以这样写 $ wc -l config.json | cut -d' ' -f1 7