cut
env GOPATH=`pwd` go get -u github.com/guonaihong/coreutils/cut/cut
Usage of cut:
-b, --bytes string
select only these bytes
-c, --characters string
select only these characters
-complement
complement the set of selected bytes, characters
or fields
-d, --delimiter string
use DELIM instead of TAB for field delimiter
-f, --fields string
select only these fields; also print any line
that contains no delimiter character, unless
the -s option is specified
-output-delimiter string
use STRING as the output delimiter
the default is to use the input delimiter
-s, --only-delimited
do not print lines not containing delimiters
-zero-terminated
line delimiter is NUL, not newline
(以下内容来自linux shell Scripting Cookbook)
这条命令将显示第2列和第3列
cut -f 2,3 filename
cut也能从stdint中读取输入文本。 \t是字段或列的默认分割符。对于分割符的行。会将该行照原样打印出来。如果不想打印出这种不包含分割符的行, 则可以使用cut的 -s选项。
我们也可以使用--complement选项对提取的字段进行补集运算。假设有多个字段, 你希望打印出除第3列之外的所有列,则可以使用:
cut -f3 --complement student_data
要指定分割符,使用-d选项
cat delimited_data.txt
No;Name;Mark;Percent
1;Sarath;45;90
cut -f 2 -d ';' delimited_data.txt
假设我们不依赖分割符,但需要通过将字段定义为一个字符范围来进行字段提取
N- 从第N个字节,字符或字段到行尾
N-M 从第N个字节,字符或字段到第M个(包括第M个在内)字节、字符或字段
-M 第1个字节,字符或字段到第M个(包括第M个在内)字节、字符或字段
打印第1到5个字符
cut -c1-5 filename
打印前2个字符
cut filename -c -2