Linux命令:cut

cut命令简介:

cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。

1.命令格式:

cut  [-bn] [file]

cut [-c] [file]

cut [-df] [file]

2.命令功能
       从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
       如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

3.主要参数
        -b :以字节为单位进行分割。(bytes)

这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
        -c :以字符为单位进行分割。(characters)

-d :自定义分隔符,默认为制表符。
        -f  :与-d一起使用,指定显示哪个区域。(fields)

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

如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,

该字符将被写出;否则,该字符将被排除。

4.命令实例:

实例一:以“字节”定位,分别显示第3个和第14个字符

[[email protected] tmp]# who

root     pts/0        2016-10-07 09:00 (10.*.*.*)
            root     pts/1        2016-10-07 09:37 (10.*.*.*)

[[email protected] tmp]# who | cut -b 3
            o
            o

[[email protected] tmp]# who | cut -b 14
            0
            1

实例二:

1、以“字节”定位,同时显示第3,4个和第14个字符

[[email protected] tmp]# who | cut -b 1-4,14
            root0
            root1

2、进行从小到大排序定位,然后再提取。可不能颠倒定位的顺序

[[email protected] tmp]# who | cut -b 10,1-4,14
            rootp0
            rootp1

3、 -3表示从第一个字节到第三个字节

[[email protected] tmp]# who | cut -b -3
            roo
            roo

4、3-表示从第三个字节到行尾

[[email protected] tmp]# who | cut -b 3-
            ot     pts/0        2016-10-07 09:00 (10.*.*.*)

ot     pts/1        2016-10-07 09:37 (10.*.*.*)

[[email protected] tmp]# who | cut -b -3,3-
            root     pts/0        2016-10-07 09:00 (10.*.*.*)

root     pts/1        2016-10-07 09:37 (10.*.*.*)

5、都是单字节字符,所以用-b和-c没有区别,

如果你提取中文,-b只会傻傻的以字节(8位二进制位)来计算,输出就是乱码。

[[email protected] tmp]#cat cut_ch.txt
            星期一
            星期二
            星期三
            [[email protected] tmp]# cut -b 3 cut_ch.txt        乱码

[[email protected] tmp]#cut -c 3 cut_ch.txt
           一
           二
           三

当遇到多字节字符时,可以使用-n选项,-n用于告诉cut不要将多字节字符拆开。例子如下:

[[email protected] tmp]# cat cut_ch.txt |cut -nb 1,2,3
         星
         星
         星

6、域,是设置“间隔符”,再设置“提取第几个域”

为什么会有“域”的提取呢,因为刚才提到的-b和-c只能在固定格式的文档中提取信息,而对于非固定格式的信息则束手无策。这时候“域”就派上用场了。

如果你观察过/etc/passwd文件,你会发现,它并不像who的输出信息那样具有固定格式,而是比较零散的排放。但是,冒号在这个文件的每一行中都起到了非常重要的作用,冒号用来隔开每一项。

以/etc/passwd的前3行内容为例:

[[email protected] tmp]# cat /etc/passwd|head -n 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

用-d来设置间隔符为冒号,用-f来设置我要取的是第一个域,列出所有的用户名。

[[email protected] tmp]# cat /etc/passwd|head -n 5|cut -d : -f 1
        root
        bin
        daemon

设定-f时,可使用例如3-5或者4-类似的格式:

[[email protected] tmp]# cat /etc/passwd|head -n 5|cut -d : -f 1,3-5,7
        root:0:0:root:/bin/bash
        bin:1:1:bin:/sbin/nologin
        daemon:2:2:daemon:/sbin/nologin

7、制表符辨认,以下方法可以看出一段空格到底是由若干个空格组成的还是由一个制表符组成。

[[email protected] tmp]# cat tab_space.txt
        this is tab finish.
        this is several space      finish.

[[email protected] tmp]# sed -n l tab_space.txt   (sed -n后面的字符是L的小写)

this is tab\tfinish.$
        this is several space      finish.$

若是制表符(TAB),那么会显示为\t符号,如果是空格,就会原样显示。
        通过此方法即可以判断制表符和空格。

8、制表符及空格为间隔符

cut的-d选项的默认间隔符是制表符,完全就可以省略-d选项;

cut -d ‘ ‘ 设定一个空格为间隔符;

[[email protected] tmp]# cat tab_space.txt |cut -d ‘ ‘ -f 1    (单引号间有1个空格,且只允许1个)

this
this

时间: 2024-10-13 02:23:06

Linux命令:cut的相关文章

linux 命令cut用法

cut命令        cut [OPTION]... [FILE]...            -d DELIMITER: 指明分隔符            -f FILEDS:                #: 第#个字段                #,#[,#]离散的多个字段例如1,3,6                #-#连续的多个字段, 例如1-6 混合使用1-3,7            --output-delimiter=STRING             [[ema

linux命令-cut

很久之前就不是很系统的学习了linux常用的处理字符的命令.虽然当时学习进展自己也很满意.但是过后又容易忘记. 现在系统的学了linux的shell命令.简单的总结一下: cut顾名思义,用来把目标砍成一段一段的.简单看下用法. cut [-b | -c |  -f ] "数字" -d "seprate" --complement --output-delimiter -b以字节为单位进行分割 -c以字符为单位进行分割 -f以单词为单位进行分割. 说实话,-b-c我

linux命令cut用法

--按文件大小排序 显示前100行 显示后五列 ll -Sh|head -n 100|cut -d ' ' -f 5- 一.基本语法cut是一个选取命令,以行为单位,用指定分隔符将行切分为若干字段,选取所需要的字段.1.语法格式cut [option] filesoption常用参数如下: -d:用来定义分隔符,默认为tab键,一般与-f配合使用(如果分隔符是空格,必须是两个单引号之间确实有一个空格,是一个哦,不是支持多个)-f:需要选取的字段,根据-d切分的字段集选取,下标从1开始-s:表示不

Linux命令cut

原文 cut 文件内容查看 显示行中的指定部分,删除文件中指定字段 显示文件的内容,类似于下的type命令. 说明 该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的内容输出到标准输出上:其二是连接两个或多个文件,如cut fl f2 > f3将把文件fl和几的内容合并起来,然后通过输出重定向符“>”的作用,将它们放入文件f3中. 当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容.因此,一般用more等命令分屏显示. 为了控制滚屏,

linux命令 cut grep

cut 处理log数据等,切出想要的信息. cut -d '分隔符' -f   '第几段'   和-f同时使用 -c    字符区间  截取字符区间 原文地址:https://www.cnblogs.com/hellohell/p/8192232.html

Linux之cut命令

cut是一个选取命令,就是将一段数据经过分析,取出我们想要的.一般来说,选取信息通常是针对"行"来进行分析的,并不是整篇信息分析的. (1)其语法格式为:cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file] 使用说明cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段写至标准输出.如果不指定 File 参数,cut 命令将读取标准输入.必须指定 -b.-c 或 -f 标志之一. 主要参数-b :以字节为单位进

Linux命令:cp、time、cut、awk 、获取文件大小命令

最近写了一个shell脚本,用到了cp.time.cut.awk命令,把他们的使用方法给写下来: 1.cp和mv cp命令:用来完成文件的复制,从源文件夹复制到目标文件夹.执行后源文件夹和目标文件夹均有源文件. mv 命令:用来移动文件.执行后,源文件夹中没有源文件.我经常用mv命令来重命名文件 注意:cp命令源文件夹与目标文件夹不能使同一个:而在mv中可以是同一个. 命令解析: #cp [-R] 源文件 目标文件夹 cp -R 参数 ---当复制整个文件夹时使用. #mv 源文件 目标文件夹

Linux——note shell常用命令 cut 、sort、unqi、tee、tr、split和shell中连接符&& ||

1.cut 常用作将一个文件分段 cut -d'分隔符' [-cf] n -d 后面指定分隔符,用单引号引起来. -f 指定第几段 -c 后面只有一个数字表示截取第几个字符,后面跟一个数字区域,表示截取从几到几. [[email protected] ~]# cut -d: -f 3 /etc/passwd [[email protected] ~]# cut -d: -f 3,4 /etc/passwd [[email protected] ~]# cut -c 10 /etc/passwd

Linux 之Cut命令详解

摘自:http://blog.csdn.net/zsf8701/article/details/7718680 Linux 之Cut命令详解 cut是一个选取命令,就是将一段数据经过分析,取出我们想要的.一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的. (1)其语法格式为: cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file] 使用说明 cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段写至标准

Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs

在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail 等都是可以接受 standard input 的管线命令啦.至于例如 ls, cp, mv 等就不是管线命令了!因为 ls, cp, mv 并不会接受来自 stdin 的数据. 也就是说,管线命令主要有两个比较需要注意的地方: 管线命令仅会处理 standard output,对于 standar