cut命令基本使用
一、简单说明
cut命令常用于连接字符,合并文件, 将输出打印到标准输出上stdout上, 可以通过重定向符 > 输出到文件,如:cut file1 file2 > file3, 这条指令会将file1 file2文件的内容合并输出到file3中保存。cut还可以用于显示行中的指定部分, 删除指定字段,类似于type命令, awk也可以达到相同的结果。
二、基本用法
语法
cut (选项) (参数)
选项
选项 | 含义 |
---|---|
-b | 仅显示行中指定直接范围的内容 |
-c | 仅显示行中指定范围的字符 |
-d | 指定分割符, 默认为“TAB”制表符 |
-f | 显示指定字段的内容 |
-n | 与“-b”连用,不分割多字节字符 |
–complement | 补足被选择的字节,字符或字段 |
–out–delimiter=<字段分割符> | 指定输出内容是的字段分割符 |
参数
文件:指定要过滤内容的文件
三、示例
准备要过滤的文件cut-sample
NAME GENDER HEIGHT(cm) MONTH SALARY
zhao male 150 1 1000
qian female 165 0 500
sun female 177 2 5000
li male 180 0 7000
zhou male 155 5 3000
wu male 170 12 1500
zheng female 167 4 3400
wang male 158 3 8000
打印每一行的第一个字符和第三个字符,这里-c和-b是同样的效果
$ cut -c1,3 cut-sample
NM
za
qa
sn
l
zo
w
ze
wn
$ cut -b1,3 cut-sample
NM
za
qa
sn
l
zo
w
ze
wn
打印指定字段, 如果要表示范围使用 ‘-’ 代替 ‘,’,上面的-b和-c也是同样的效果。
$ cut -f1,3 cut-sample
NAME HEIGHT(cm)
zhao 150
qian 165
sun 177
li 180
zhou 155
wu 170
zheng 167
wang 158
$ cut -f1-3 cut-sample
NAME GENDER HEIGHT(cm)
zhao male 150
qian female 165
sun female 177
li male 180
zhou male 155
wu male 170
zheng female 167
wang male 158
如果想要打印除指定范围外的字符,字节,字段外的内容可以使用–complement
$ cut -f1-3 --complement cut-sample
MONTH SALARY
1 1000
0 500
2 5000
0 7000
5 3000
12 1500
4 3400
3 8000
指定范围
cut命令可以将一串字符作为列来显示,字符字段的记法:
N-:从第N个字节、字符、字段到结尾;
N-M:从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;
-M:从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。
对应选项:
-b 表示字节;
-c 表示字符;
-f 表示定义字段
$ cut -f3- --complement cut-sample
NAME GENDER
zhao male
qian female
sun female
li male
zhou male
wu male
zheng female
wang male
$ cut -f3- cut-sample
HEIGHT(cm) MONTH SALARY
150 1 1000
165 0 500
177 2 5000
180 0 7000
155 5 3000
170 12 1500
167 4 3400
158 3 8000
$ cut -b3- --complement cut-sample
NA
zh
qi
su
li
zh
wu
zh
wa
$ cut -b3- cut-sample
ME GENDER HEIGHT(cm) MONTH SALARY
ao male 150 1 1000
an female 165 0 500
n female 177 2 5000
male 180 0 7000
ou male 155 5 3000
male 170 12 1500
eng female 167 4 3400
ng male 158 3 8000