linux之cut命令详解

cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出至标准输出。

如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。若处理的是字段,则定界符隔开的即为各字段,而输出时字段也以给定的定界符隔开。默认的定界符为制表字符(TAB)。

语法

cut  [-option] [file]

参数:

  • -b,–bytes:以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
  • -c,–characters :以字符为单位进行分割。
  • -d,–delimiter :自定义分隔符,默认为制表符。
  • -f,–field :与-d一起使用,指定显示哪个区域,即选取每行的第N列。
  • -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
    范围之内,该字符将被写出;否则,该字符将被排除

范围控制:

n:只有第n项

n-:从第n项一直到行尾

n-m:从第n项到第m项(包括m)

-m:从一行的开始到第m项(包括m)

-:从一行的开始到结束的所有项

实例:

cat /etc/passwd | cut -b1-3 #取每行的第1-3字字节

cat /etc/passwd | cut -b1-3,5-7,8 #取每行的第1-3,5-7,8的字节(后面的数字会先进行从小到大的排列) 需要事先知道具体字节,很容易出错

cat song.txt |cut -nb 1,2,3#当 -b 添加 -n 后则不会分割多字节 (我的系统是utf-8,所以需要用三个字节来表示一个汉字)

cat /etc/passwd | cut -c1,3 #适用于中文 

cat /etc/passwd | cut -d : -f 3 #以:分割,取第三段
cat /etc/passwd | cut -d '' #以空格进行分割,且是一个空格

一、cut实战演练

cut.txt文件

1

2

3

4

root,x,0,0,root,/root,/bin/bash

daemon,x,1,1,daemon,/usr/sbin,/usr/sbin/nologin

bin,x,2,2,bin,/bin,/usr/sbin/nologin

sys,x,3,3,sys,/dev,/usr/sbin/nologin

实战演练

输出每一行的第二个字节内容

1

2

3

4

5

6

7

> root@wing:~/wing # cut -b 2 cut.txt

> o

> a

> i

> y

>

>

输出每一行的第二个字符内容

1

2

3

4

5

6

7

> root@wing:~/wing # cut -c 2 cut.txt

> o

> a

> i

> y

>

>

输出每一行第一列内容

1

2

3

4

5

6

7

> root@wing:~/wing # cut -d , -f 1 cut.txt

> root

> daemon

> bin

> sys

>

>

输出每一行第一、二列内容

1

2

3

4

5

6

> root@wing:~/wing # cut -d , -f 1,2 cut.txt

> root,x

> daemon,x

> bin,x

> sys,x

>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕城南风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值