《Centos系统——shell的三剑客》

shell三剑客

grep(全局搜索打印)

在这里插入图片描述

在这里插入图片描述

grep --help -----查看grep帮助信息

grep -n -----显示所在的行号
[root@localhost ~]# grep -n "root" /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

grep -c -----统计匹配到的行数
[root@localhost ~]# grep -c "root" /etc/passwd
2

grep -w -----精确匹配
[root@localhost ~]# grep -w "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

grep -E -----正则匹配
[root@localhost ~]# grep -E "root|nginx" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin

grep -Eq -----静默模式,屏蔽输出
[root@localhost ~]# grep -Eq "root|nginx" /etc/passwd
[root@localhost ~]# 

grep -i -----忽略大小写
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin

grep -v -----反向输出,取反
[root@localhost ~]# grep -Ev "root|nginx" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
logstash:x:997:995:logstash:/usr/share/logstash:/sbin/nologin

sed

流编辑器,主要用来过滤和替换文本内容,增删改查

p(print) -----打印(print)
[root@localhost ~]# sed -n '/root/p' /etc/passwd -----匹配打印root的行
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

s -----替换字符串
g -----全局(global)
sed 's/root/ROOT/g' /tmp/passwd|grep "ROOT" -----将root替换为ROOT
ROOT:x:0:0:ROOT:/ROOT:/bin/bash
operator:x:11:0:operator:/ROOT:/sbin/nologin

[root@localhost ~]# seq 10 > a.txt
[root@localhost ~]# cat a.txt 
1
2
3
4
5
6
7
8
9
10


[root@localhost ~]# sed -n '1,2p' /root/a.txt -----显示第1-2行
1 2 3 4 5 6 7 8 9 10
k s a x z 3 w r s a 

[root@localhost ~]# sed -n '2,+2p' /root/a.txt -----显示从第二行开始,往下再来2行
k s a x z 3 w r s a 
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10

打印奇数行(1开始,2p是加2)
[root@localhost ~]# sed -n '1~2p' a.txt 
1
3
5
7
9

打印偶数行(1开始,2p是加2)
[root@localhost ~]# sed -n '2~2p' a.txt 
2
4
6
8
10

d(delete) -----删除
删除第一行的内容
[root@localhost ~]# sed '1d' a.txt 
2
3
4
5
6
7
8
9
10

删除1-3行的内容
[root@localhost ~]# sed '1,3d' a.txt 
4
5
6
7
8
9
10

删除空行
sed '/^$/d' a.txt

a(append) -----在后面增加
[root@localhost ~]# sed '1a wu' a.txt -----在第1行后增加wu
1
wu
2
3
4
5
6
7
8
9
10

i(insert) -----在前面插入
[root@localhost ~]# sed '3i deng' a.txt -----在第3行前面插入deng
1
2
deng
3
4
5
6
7
8
9
10

^ -----....开头
sed 's/^tom/jack/g' /tmp/passwd 

$ -----....结尾
sed 's/nologin$/jack/g' /tmp/passwd

& -----表示前面匹配到的字符
sed 's/nologin$/&_wudengtian/g' /tmp/passwd -----将nologin结尾的替换为wudengtian

c -----整行替换
[root@localhost ~]# sed '/root/chuazai007' /tmp/passwd -----匹配root行替换为huazai007
huazai007 
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync


w(write)-----将模式空间匹配的行,写入到指定文件
sed '/tom/w b.txt' /tmp/passwd -----将tom开头的行写入到b.txt文件中
[root@localhost ~]# cat b.txt -----查看文件
tom:x:1000:1000::/home/tom:/bin/bash
tom:x:1000:1000::/home/tom:/bin/bash
tom:x:1000:1000::/home/tom:/bin/bash

r(read) -----读取
[root@localhost ~]# sed '2r b.txt' /tmp/passwd  -----将b.txt添加到/tmp/passwd的第二行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
tom:x:1000:1000::/home/tom:/bin/bash
tom:x:1000:1000::/home/tom:/bin/bash
tom:x:1000:1000::/home/tom:/bin/bash

awk

[root@localhost ~]# awk '/root/ {print}'  /tmp/passwd 打印匹配root字段
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

[root@localhost ~]# awk -F ':' '/root/ {print $5}'  /tmp/passwd -----打印第5个字段 
root
operator

[root@localhost ~]# awk -F ':' '/root/ {print $NF}'  /tmp/passwd -----打印最后一个字段
/bin/bash
/sbin/nologin

[root@localhost ~]# awk -F ':' '/root/ {print $(NF-1)}' /tmp/passwd ------打印倒数第二个字段
/root
/root

[root@localhost ~]# awk 'NR==2 {print}' /tmp/passwd -----打印第2行
bin:x:1:1:bin:/bin:/sbin/nologin

[root@localhost ~]# awk 'NR>3 {print}' a.txt -----打印第3行以后的
4
5
6
7
8
9
10

[root@localhost ~]# awk -F ':' '/tom/{print toupper($1)}' /tmp/passwd -----将tom小写变大写
TOM
TOM
TOM

[root@localhost ~]# awk -F ':' '/tom/{print tolower($1)}' /tmp/passwd -----将tom大写变小写
tom
tom
tom
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值