标签:str 除了 解释 bcd 字节 ESS name 提取 sel
第十七章 按列切分文件字段工具:cut命令cut 命令 用来显示行中的指定部分内容,删除文件中指定字段。cut经常用来显示文件的内容,类似于type命令。
说明:该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的内容输出到标准输出上;其二是连接两个或多个文件,如cut f1 f2 > f3 将把文件f1和f2的内容合并起来,然后通过输出重定向符“>”的作用,将他们放入文件f3中。
cut (选项) (参数)
-b :仅显示行中指定直接范围的内容;
-c :仅显示行中指定范围的字符;
-d :指定字段的分隔符,默认的字段分隔符为“TAB”;
-f :显示指定字段的内容;select only these fields; also print any line that contains no delimiter character, unless the -s option is specified
-n :与“-b”选项连用,不分隔多字节字符;
--complement :补足被选择的字节、字符或字段;
--out-delimiter=<字段分隔符>:指定输出内容是的字段分隔符;
-s, --only-delimited do not print lines not containing delimiters
? --output-delimiter=STRING use STRING as the output delimiter
--help:显示帮助信息
--version:显示版本信息
?
文件:指定要进行内容过滤的文件。
例如有一个学生报表信息,包含No、Name、Mark、Percent:
[root@ceshi cut]# cat test.txt
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 abc 68 98
注意:这里的分隔符是一个tab,而不是空格;当然也可以用空格,那么在使用参数提取字段的时候需要指明字段分隔符是空格。
使用-f选项提取指定字段:
[root@ceshi cut]# cut -f 1 test.txt
No
01
02
03
使用-d选项 指定字段分隔符
如果分隔符是空格如下:
[root@ceshi cut]# cat test2.txt
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 abc 68 98
[root@ceshi cut]# cut -d " " -f 1 test2.txt
No
01
02
03
利用-f选项提取指定范围字段:
[root@ceshi cut]# cut -f 1,2 test.txt
No Name
01 tom
02 jack
03 abc
--complement选项提取指定字段之外的列:
#打印除了第二列之外的列
[root@ceshi cut]# cut -f 2 --complement test.txt
No Mark Percent
01 69 91
02 71 87
03 68 98
cut命令 可以将一串字符作为列来显示,字符字段的记法:
上面是记法,结合下面选项:
示例
[root@ceshi cut]# cat abc.txt
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
打印第1个到第3个字符:
[root@ceshi cut]# cut -c 1-3 abc.txt
abc
abc
abc
abc
abc
打印前两个字符:
[root@ceshi cut]# cut -c 1-2 abc.txt
ab
ab
ab
ab
ab
或者
[root@ceshi cut]# cut -c -2 abc.txt
ab
ab
ab
ab
ab
打印从第5个字节到结尾:
[root@ceshi cut]# cut -c 5- abc.txt
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
标签:str 除了 解释 bcd 字节 ESS name 提取 sel
原文地址:http://blog.51cto.com/506554897/2146232