1. cut(1)
  2. cut(1)

NAME

cut - 在文件的每一行中提取片断

总览(SYNOPSIS)

cut -b list [-n] [file...]

cut -c list [file...]

cut -f list [-d delim] [-s] [file...]

描述(DESCRIPTION)

在文件file的各行中,把提取的片断list显示在标准输出,提取单位可以是比特 (byte,-b选项),字符(character,-c选项)或者由分隔符分开的字段。(fields,-f 选项)

片段list可以由逗号或空格分割的正整数组成,如"a,b",它代表提取每行第a和b 个字符。可以由范围组成。范围有三种形式,第一种形式为"low-high",表示low 与high之间的字符。第二种形式为"-high",表示从第一个字符到第high个字符。 第三种形式为"low-",代表从第low个字符开始到该行的最后一个字符,不包括 <newline>

片段也可以由上述两种方式组合而成,可以重复,可以覆盖,可以跳跃,可以是任 何顺序,但最终将以file的实际顺序输出到标准输出,并且重复的内容只会输出一 次。如果没有指定文件file,或file是"-",就从标准输入读取数据。

选项

使用且只使用-b,-c或-f中的一个选项

-b,--bytes=LIST

输出以字节为单位,注意在多字节文本的情况下,有可能会输出乱码。It shall not be an error to select bytes not present in the input line.

-c,--characters=LIST

输出以字符为单位。It shall not be an error to select bytes not present in the input line.

-d,--delimiter=DELIM

使用DELIM做字段(field)分隔符,默认为TAB

f,--fields=LIST

输出以字段为单位。It shall not be an error to select bytes not present in the input line.

-n

不要分割字符,与-b选项一起使用时如果low不是字符的第一个字节,则 low减小直至该字符的第一个字节。如果high不是字符的最后一个字节, 则high减小直至上一个字符的最后一个字节。

-s,--only-delimited

不显示没有分隔符的行

--output-delimiter=STRING

使用STRING作为输出分隔符,缺省的输出分隔符为输入分隔符

--help

显示帮助信息,然后结束

--version

显示版本信息,然后结束

实例Examples

片段list

1,4,7   选择第一个,第四个,第七个字节/字符/字段

1-3,8   等价于1,2,3,8.

-5,10   等价于1,2,3,4,5,10.

3-      等价于3到最后一个字符,包括第三个字符

命令

cut -d : -f 1,6 /etc/passwd

读取"/etc/passwd"并以如下形式输出

<user ID>:<home directory>

下面命令可以生成由file中1-500个字符(包括<newline>)构成的file1,由第501 个字符到文末的file2。

cut -b 1-500 -n file > file1
cut -b 501- -n file > file2

file可以由file1和file2重建

paste -d "\0" file1 file2 > file
  1. February 2015
  2. cut(1)