Cut工具

用于剪切数据

基本用法

cut[选项参数] filename

说明:默认分隔符是制表符

选项参数功能
-f列号,提取第几列
-d分隔符,按照指定分隔符分割列
举个栗子

准备数据

1
2
3
4
5
6
7
8
[root@b09ed0cc2c9d local]# touch cut.txt
[root@b09ed0cc2c9d local]# vim cut.txt

dong shen
guan zhen
wo wo
lai lai
le le

切割第一列数据

1
2
3
4
5
6
[root@b09ed0cc2c9d local]# cut -d " " -f 1 cut.txt
dong
guan
wo
lai
le

切割第二,三列

1
2
3
4
5
6
[root@b09ed0cc2c9d local]# cut -d " " -f 2,3 cut.txt
shen
zhen
wo
lai
le

在cut.txt文件切割出guan

1
2
3
4
5
6
7
8
9
10
11
12
[root@b09ed0cc2c9d local]# cat cut.txt
dong shen
guan zhen
wo wo
lai lai
le le
[root@b09ed0cc2c9d local]#
[root@b09ed0cc2c9d local]# cat cut.txt | grep guan
guan zhen
[root@b09ed0cc2c9d local]# cat cut.txt | grep guan | cut -d " " -f 1
guan
[root@b09ed0cc2c9d local]#

选取系统PATH变量值,第二个“:”之后的所有路径

1
2
3
4
[root@b09ed0cc2c9d local]# echo $PATH
/usr/local/java/jdk1.8.0_181/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[root@b09ed0cc2c9d local]# echo $PATH | cut -d : -f 3- # 不加-表示第三列,加上-表示第三列之后
/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

切割ifconfig后打印的IP地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@b09ed0cc2c9d local]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:acff:fe11:2 prefixlen 64 scopeid 0x20<link>
ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)
RX packets 8 bytes 656 (656.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 656 (656.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@b09ed0cc2c9d local]# ifconfig eth0 | grep "inet " | cut -d "t" -f 2 | cut -d " " -f 2
172.17.0.2
[root@b09ed0cc2c9d local]#
sed工具

一种流编辑器,一次处理一行内容

基本用法

sed [选项参数] command filename

选项参数说明

选项参数功能
-a直接在指定列模式上进行sed的动作编辑

命令功能描述

命令功能描述
a新增,a的后面可以接字串,在下一行出现
d删除
s查找并替换
举个栗子

数据准备

1
2
3
4
5
6
7
8
9
[root@b09ed0cc2c9d opt]# touch sed.txt
[root@b09ed0cc2c9d opt]# vim sed.txt

dong shen
guan zhen
wo wo
lai lai

le le

将mei nv 这个单词插入到 sed.txt 第二行下,打印

1
2
3
4
5
6
7
8
9
[root@b09ed0cc2c9d opt]# sed "2a mei nv" sed.txt
dong shen
guan zhen
mei nv
wo wo
lai lai

le le
[root@b09ed0cc2c9d opt]#

删除sed.txt文件所有包含 wo 的行

1
2
3
4
5
6
7
[root@b09ed0cc2c9d opt]# sed "/wo/d" sed.txt
dong shen
guan zhen
lai lai

le le
[root@b09ed0cc2c9d opt]#

将sed.txt文件中 wo 替换为 ni

1
2
3
4
5
6
7
8
[root@b09ed0cc2c9d opt]# sed "s/wo/ni/g" sed.txt
dong shen
guan zhen
ni ni
lai lai

le le
[root@b09ed0cc2c9d opt]#
注意:g表示global,全部替换

将sed.txt文件中的第二行删除并将wo替换成ni

1
2
3
4
5
6
7
[root@b09ed0cc2c9d opt]# sed -e "2d" -e "s/wo/ni/g" sed.txt
dong shen
ni ni
lai lai

le le
[root@b09ed0cc2c9d opt]#