Linux字符截取命令-cut

作者|WenasWei

Linux之cut命令解读

将每位文件中选取的行局部复印到规范输入,若果没有文件,或则文件是-,则读取规范输出,长选项的强制参数对于短选项也是强制的。

cut是一个选定命令,通常来说,选定信息一般是针对“行”来进行分析的,并不是每篇信息分析的,用于显示每行从结尾算起num1到num2的文字。

1.1应用句型1.2应用阐述

cut命令从文件的每一行剪切字节、字符和数组并将这种字节、字符和数组写至规范输入。

倘若不指定File参数,cut命令将读取规范输出。必须指定-b、-c或-f标记之一,cut默认以制表符为分隔符。

参数:

在-b、-c或-f中只能应用一个。每位LIST由一个组成

范畴,或用冒号分隔的多个范畴。选取的输出被写入

程序与读取和写入的程序雷同。

1.3三个办法定位

cut命令次要是承受三个定位办法:

二cut帮忙文档

执行命令查问帮忙文档:

cut --help

cut帮忙文档解析:

(1)’-b字节列表’

‘–bytes=字节列表’

取舍仅复印字节列表中列举的地位中的字节。制表符和退格键与其余任何字符一样;她们占用了1个字节。倘若指定了输入定界符,而后在所选字节范畴之间输入该字符串。

(2)’-c字符列表’

‘–characters=字符列表’

取舍仅复印在character-list中列举的地位中的字符。目前与-b雷同,但是国际化将扭转此类情况。制表符和退格键与其余任何字符一样;她们占1个字符。倘若指定了输入定界符,而后在所选字节范畴之间输入该字符串。

(3)’-dinput_delim_byte’

‘–delimiter=input_delim_byte’

和-F,请应用input_delim_byte的第一个字节作为输出数组分隔符(默认为TAB)。

(4)’-f数组列表’

‘–fields=数组列表’

取舍仅复印在field-list中列举的数组。默认状况下,数组之间用TAB字符分隔。还要复印任何不蕴涵定界符的行,除非-仅定界(-s)选项已指定。

(5)’-n’

不要分拆多字节字符。

(6)’-s’

‘-仅定界’

为了-F,切勿复印不蕴涵数组分隔符的行。一般,任何没有数组分隔符的行都按原貌复印。

三命令解读与应用案例3.1实例一:查问命令联合cut-b

当你执行who命令时linux剪切命令,会输入相像如下的内容:

$ who
root     pts/1        2021-04-25 21:51 (58.62.93.183)
root     pts/0        2021-04-25 21:50 (58.62.93.183)

(1)提取每一行的第3个字节

$ who|cut -b 3
o
o

(2)提取第1,第2、第3个字节

计划1:

$ who |cut -b 1-3
roo
roo
roo

计划2:

$ who |cut -b 1,2,3
roo
roo
roo

 cut 命令使用方法 _linux剪切命令_Linux cut 命令教程

-b反对形如1-3的写法linux剪切命令,并且多个定位之间用冒号隔开就才能了。

小心:

cut命令假如应用了-b选项,这么执行此命令时linux模拟,cut会先把-b后面所有的定位进行从小到大排序,而后再提取。不能颠倒定位的程序。

(3)提取第1到第3,第5和第20个字符以后的所有数据

who|cut -b 1-3,20-
roo   2021-04-25 21:51 (58.62.93.183)
roo   2021-04-25 21:50 (58.62.93.183)
roo   2021-04-25 23:05 (58.62.93.183)

(4)提取第n个字节前后所有的字节

n=2的状况下

计划1:

$ who |cut -b 2-
oot     pts/1        2021-04-25 21:51 (58.62.93.183)
oot     pts/0        2021-04-25 21:50 (58.62.93.183)
oot     pts/2        2021-04-25 23:05 (58.62.93.183)

计划2:

$ who |cut -b -2
ro
ro
ro

linux剪切命令_Linux cut 命令教程 _ cut 命令使用方法

3.2实例二:文本文件联合cut-c(1)成立测试文件(2)-c和-b的应用区别

-c与命令查问后果:

who|cut -c 1-3,20-
roo   2021-04-25 21:51 (58.62.93.183)
roo   2021-04-25 21:50 (58.62.93.183)
roo   2021-04-25 23:05 (58.62.93.183)

看似查问后果雷同,只是由于这个事例who输入取的数据都是字节字符,所以用-b和-c没有区别,假如你提取英文,区别就看进去了,瞧瞧英文提取的状况:

$ cut -b 3-10 test.txt
ple= 苹
eate= 创
lect= 删
e= 程序
od= 好
$ cut -c 3-10 test.txt
ple= 苹
eate= 创
lect= 删
e= 程序
od= 好

Linux cut 命令教程 _linux剪切命令_ cut 命令使用方法

3.3实例三:cut-d与-f的奇特应用

cut的-d选项的默认距离符就是制表符,所以当你就是要应用制表符的时侯,齐全就能否省略-d选项深度linux,而间接用-f来取域就才能了。

(1)联合查问命令取出指定符号的切割的第一域

$ head -n 5  /etc/passwd
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
sync:x:4:65534:sync:/bin:/bin/sync
$ head -n 5  /etc/passwd  |cut -d ':' -f 1
root
daemon
bin
sys
sync

(2)取出文档手指定符号的切割的第一域

$ head -n 5  test.txt |cut -d : -f 1
apple= 苹果 =pingguo
create= 创立
delect= 删除
exe= 程序
good= 好的

 cut 命令使用方法 _Linux cut 命令教程 _linux剪切命令

$ head -n 5 test.txt |cut -d = -f 2 苹果 创立 删除 程序 好的

(3)如上-b中的拼接规定同理应用

$ head -n 5  test.txt |cut -d = -f2-
$ head -n 5  test.txt |cut -d = -f2,3
$ head -n 5  test.txt |cut -d = -f2-3

(4)分隔符必须为单个字符,多个异样如下

$ cat test.txt |cut -d '==' -f2-3
cut: the delimiter must be a single character

四应用场景和缺点有余4.1cut的应用场景4.2cut的缺点和有余4.3cut和awk的差别参考文档:

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复