linux命令之cut



用法:cut [选项]... [文件]...

从每个文件中输出指定部分到标准输出。

 d

长选项必须使用的参数对于短选项时也是必需使用的。

  -b, --bytes=列表只选中指定的这些字节

  -c, --characters=列表只选中指定的这些字符

  -d, --delimiter=分界符使用指定分界符代替制表符作为区域分界

  -f, --fields=LIST       select only these fields;  also print any line

                            that contains no delimiter character, unless

                            the -s option is specified

  -n                      with -b: don't split multibyte characters

      --complement补全选中的字节、字符或域

  -s, --only-delimited不打印没有包含分界符的行

      --output-delimiter=字符串使用指定的字符串作为输出分界符,默认采用输入

的分界符

      --help显示此帮助信息并退出

      --version显示版本信息并退出

 

仅使用f -b, -c -f 中的一个。每一个列表都是专门为一个类别作出的,或者您可以用逗号隔

开要同时显示的不同类别。您的输入顺序将作为读取顺序,每个仅能输入一次。

每种参数格式表示范围如下:

    N从第个开始数的第个字节、字符或域

    N-从第个开始到所在行结束的所有字符、字节或域

    N-M从第个开始到第个之间(包括第)的所有字符、字节或域

    -M从第个开始到第个之间(包括第)的所有字符、字节或域

 

当没有文件参数,或者文件不存在时,从标准输入读取

 

请向bug-coreutils@gnu.org 报告cut 的错误

GNU coreutils 项目主页:<http://www.gnu.org/software/coreutils/>

GNU 软件一般性帮助:<http://www.gnu.org/gethelp/>

请向<http://translationproject.org/team/zh_CN.html> 报告cut 的翻译错误

要获取完整文档,请运行:info coreutils 'cut invocation'

 

note:

用法

cut [-bn] [file]

cut [-c]  [file]

cut [-df] [file]

 

使用说明

该命令从文件的每一行剪切字节、字符和字段 并将这些数据写至stdout

 

如果不指定文件参数,cut命令将读取标准输入,必须指定-b -c或者-f 标志之一

 

c:字符单位切割

b:字节单位切割

d:自定义分割符,默认为制表符

f:与d一起使用,指定显示哪个区域

n:取消分割多字节字符,仅和b标志一起用

如果字符的最后一个字节落在b标志的List参数指示的< br/>范围之内,该字符被写出;否则 被排除

 

$ who 

cloud    tty1         2015-12-22 11:21 (:0)

cloud    pts/1        2015-12-29 13:36 (:0.0)

cloud    pts/0        2015-12-29 13:29 (:0.0)

1-3个字节who |cut -b 1-3

取第一个字节who |cut -b 1

 

如果字节定位中 我想提取 第3458个字节 

 

 

 

支持逗号‘,’,以及‘-’符号

$who |cut -b 1-3,12  

cloy

clos

clos

 

cut先把-b后面的数字进行从大到小的排序,再执行提取

who |cut -b 12,1-3

不过 1-3 是不能写成 3-1 

 

$ who |cut -b 3-  

这是截取3以及3之后的字节

$ who |cut -b -3

这是截取3以及3之前的字节

$ who |cut -b -33-

这是打印所有的字节

 

`以字符作为定位

这个截取字母字符时 与-b方式差别不大

但是截取中文字符时,差别会很大,b输出乱码(它只会以8进制来计算)c却输出1个中文字符

$ cut -c 3 chinese 

$ cut -b 3 chinese  

补:

`当遇到多字节字符时候,使用-n选项,-n用于告诉cut不要将多字节字符拆开来

$ cat chinese 

星期一

星期二

星期三

星期四

星期五

星期六

星期日

$ cut -b 3 chinese  -n

 

域是什么?对于非固定格式的字符的提取,-c -b缺少帮助

设置间隔符‘:’等,再设置提取第几个域,就ok

 

 `提取前五行 head -n

$cat /etc/passwd |head -5 

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

$cat /etc/passwd |head -n 5|cut -d  ':'  -f 1

root

bin

daemon

adm

lp

提取以':'分割的域中 第一个字段的值

 

不能缺少 -f 123--31-3

 

-d的顺序不能乱来

[cloud@cloud ~]$ cat /etc/passwd |head -n 5|cut -d  ':'  -d 'i'  -f 1

root:x:0:0:root:/root:/b

b

daemon:x:2:2:daemon:/sb

adm:x:3:4:adm:/var/adm:/sb

lp:x:4:7:lp:/var/spool/lpd:/sb

 

[cloud@cloud ~]$ cat /etc/passwd |head -n 5|cut -d  'i'  -d ':'  -f 1

root

bin

daemon

adm

lp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

用法:cut [选项]... [文件]...

从每个文件中输出指定部分到标准输出。

 d

长选项必须使用的参数对于短选项时也是必需使用的。

  -b, --bytes=列表只选中指定的这些字节

  -c, --characters=列表只选中指定的这些字符

  -d, --delimiter=分界符使用指定分界符代替制表符作为区域分界

  -f, --fields=LIST       select only these fields;  also print any line

                            that contains no delimiter character, unless

                            the -s option is specified

  -n                      with -b: don't split multibyte characters

      --complement补全选中的字节、字符或域

  -s, --only-delimited不打印没有包含分界符的行

      --output-delimiter=字符串使用指定的字符串作为输出分界符,默认采用输入

的分界符

      --help显示此帮助信息并退出

      --version显示版本信息并退出

 

仅使用f -b, -c -f 中的一个。每一个列表都是专门为一个类别作出的,或者您可以用逗号隔

开要同时显示的不同类别。您的输入顺序将作为读取顺序,每个仅能输入一次。

每种参数格式表示范围如下:

    N从第个开始数的第个字节、字符或域

    N-从第个开始到所在行结束的所有字符、字节或域

    N-M从第个开始到第个之间(包括第)的所有字符、字节或域

    -M从第个开始到第个之间(包括第)的所有字符、字节或域

 

当没有文件参数,或者文件不存在时,从标准输入读取

 

请向bug-coreutils@gnu.org 报告cut 的错误

GNU coreutils 项目主页:<http://www.gnu.org/software/coreutils/>

GNU 软件一般性帮助:<http://www.gnu.org/gethelp/>

请向<http://translationproject.org/team/zh_CN.html> 报告cut 的翻译错误

要获取完整文档,请运行:info coreutils 'cut invocation'

 

note:

用法

cut [-bn] [file]

cut [-c]  [file]

cut [-df] [file]

 

使用说明

该命令从文件的每一行剪切字节、字符和字段 并将这些数据写至stdout

 

如果不指定文件参数,cut命令将读取标准输入,必须指定-b -c或者-f 标志之一

 

c:字符单位切割

b:字节单位切割

d:自定义分割符,默认为制表符

f:与d一起使用,指定显示哪个区域

n:取消分割多字节字符,仅和b标志一起用

如果字符的最后一个字节落在b标志的List参数指示的< br/>范围之内,该字符被写出;否则 被排除

 

$ who 

cloud    tty1         2015-12-22 11:21 (:0)

cloud    pts/1        2015-12-29 13:36 (:0.0)

cloud    pts/0        2015-12-29 13:29 (:0.0)

1-3个字节who |cut -b 1-3

取第一个字节who |cut -b 1

 

如果字节定位中 我想提取 第3458个字节 

 

 

 

支持逗号‘,’,以及‘-’符号

$who |cut -b 1-3,12  

cloy

clos

clos

 

cut先把-b后面的数字进行从大到小的排序,再执行提取

who |cut -b 12,1-3

不过 1-3 是不能写成 3-1 

 

$ who |cut -b 3-  

这是截取3以及3之后的字节

$ who |cut -b -3

这是截取3以及3之前的字节

$ who |cut -b -33-

这是打印所有的字节

 

`以字符作为定位

这个截取字母字符时 与-b方式差别不大

但是截取中文字符时,差别会很大,b输出乱码(它只会以8进制来计算)c却输出1个中文字符

$ cut -c 3 chinese 

$ cut -b 3 chinese  

补:

`当遇到多字节字符时候,使用-n选项,-n用于告诉cut不要将多字节字符拆开来

$ cat chinese 

星期一

星期二

星期三

星期四

星期五

星期六

星期日

$ cut -b 3 chinese  -n

 

域是什么?对于非固定格式的字符的提取,-c -b缺少帮助

设置间隔符‘:’等,再设置提取第几个域,就ok

 

 `提取前五行 head -n

$cat /etc/passwd |head -5 

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

$cat /etc/passwd |head -n 5|cut -d  ':'  -f 1

root

bin

daemon

adm

lp

提取以':'分割的域中 第一个字段的值

 

不能缺少 -f 123--31-3

 

-d的顺序不能乱来

[cloud@cloud ~]$ cat /etc/passwd |head -n 5|cut -d  ':'  -d 'i'  -f 1

root:x:0:0:root:/root:/b

b

daemon:x:2:2:daemon:/sb

adm:x:3:4:adm:/var/adm:/sb

lp:x:4:7:lp:/var/spool/lpd:/sb

 

[cloud@cloud ~]$ cat /etc/passwd |head -n 5|cut -d  'i'  -d ':'  -f 1

root

bin

daemon

adm

lp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2015-12-29 21:05  cloudren2020  阅读(138)  评论(0编辑  收藏  举报