【cut grep sort awk xargs sed】

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 ~]$

猜你喜欢

转载自blog.csdn.net/Tonystark_lz/article/details/127017521