grep
筛选行
参数 | 含义 |
---|---|
-v | 反选 |
以 ifconfig ens33 样例数据为例
[atguigu@hadoop102 ~]$ ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.102 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::20c:29ff:fec3:515e prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c3:51:5e txqueuelen 1000 (Ethernet)
RX packets 125370 bytes 17980197 (17.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 952591 bytes 1790545604 (1.6 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[atguigu@hadoop102 ~]$ ifconfig ens33|grep inet
inet 192.168.10.102 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::20c:29ff:fec3:515e prefixlen 64 scopeid 0x20<link>
[atguigu@hadoop102 ~]$ ifconfig ens33|grep inet|grep -v inet6
inet 192.168.10.102 netmask 255.255.255.0 broadcast 192.168.10.255
cut
筛选列/剪切列
参数 | 含义 |
---|---|
-f | 列号,提取第几列 eg: -f 1 |
-d | 分隔符 eg:-d “:” |
-c | 指定具体的字符 eg: -c 1-6 |
[atguigu@hadoop102 ~]$ ifconfig ens33|grep inet|cut -d " " -f 10
192.168.10.102
fe80::20c:29ff:fec3:515e
[atguigu@hadoop102 ~]$ ifconfig ens33|grep inet|grep -v inet6|cut -c 14-27
192.168.10.102
sort
按行排序
参数 | 含义 |
---|---|
-n | 按照数值大小排序 |
-t | 分隔符 eg:-t : (按:分割) |
-r | 相反顺序 逆序 |
-k | 指定按照第几列排序 |
[atguigu@hadoop102 ~]$ sort -t : -nrk 3 sort.txt
bb:40:5.4
bd:20:4.2
cls:10:3.5
xz:50:2.3
ss:30:1.6
awk
把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。
awk [选项参数] ‘pattern1{action1} pattern2{action2}…’ filename
pattern:表示AWK在数据中查找的内容,就是匹配模式
action:在找到匹配内容时所执行的一系列命令
参数 | 含义 |
---|---|
-F | 指定分隔符 默认为空格 |
-v | 赋值一个自定义的变量 |
[atguigu@hadoop102 ~]$ ifconfig ens33 |grep inet |grep -v inet6
inet 192.168.10.102 netmask 255.255.255.0 broadcast 192.168.10.255
[atguigu@hadoop102 ~]$ ifconfig ens33 |grep inet |grep -v inet6|awk '{print $2}'
192.168.10.102
$NF代表最后一个字段
[atguigu@hadoop102 ~]$ ifconfig ens33 |grep inet |grep -v inet6|awk '{print $NF}'
192.168.10.255
$0代表整行
NR== 选行
[atguigu@hadoop102 ~]$ ifconfig ens33 |awk 'NR==2{print $0}'
inet 192.168.10.102 netmask 255.255.255.0 broadcast 192.168.10.255
sed
这里只说替换:语法:sed ‘s/要被取代的字串/新的字串/g’
[atguigu@hadoop102 ~]$ ifconfig ens33 |grep inet |grep -v inet6|awk '{print $2}'|sed 's/102/103/g'
192.168.10.103
xargs
将标准输入数据转换成命令行采纳数
# -t-t 强制分配为伪终端,即使标准输入不是终端
[atguigu@hadoop102 ~]$ ifconfig ens33 |grep inet |grep -v inet6|awk '{print $2}'|sed 's/102/103/g'|xargs ssh -tt
Last login: Fri Sep 23 12:53:40 2022 from 192.168.10.1
[atguigu@hadoop103 ~]$