sed的用法

# 修改网卡名称
[root@server01 ~]# sed  '/^GRUB_CMDLINE_LINUX/ s/\"$/ net.ifnames=0\"/g' /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet net.ifnames=0"
GRUB_DISABLE_RECOVERY="true"
[root@server01 ~]# sed -i '/^GRUB_CMDLINE_LINUX/ s/\"$/ net.ifnames=0\"/g' /etc/default/grub
[root@server01 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-47968028dcd54f8a90573aae49b7db04
Found initrd image: /boot/initramfs-0-rescue-47968028dcd54f8a90573aae49b7db04.img
done
 
# 删除#开头的行和空行
[root@server01 ~]# cat /etc/fstab
 
 
#
# /etc/fstab
# Created by anaconda on Thu May  7 04:17:14 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=d38fd643-eb15-4b3e-b06c-1b7414aaae91 /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/dev/vg00/lv00    /home/ap    xfs    defaults    0    0
/dev/vg00/lv01    /home/web    ext4    defaults    0    0
[root@server01 ~]# sed -e '/^#/d' -e '/^$/d' /etc/fstab
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=d38fd643-eb15-4b3e-b06c-1b7414aaae91 /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/dev/vg00/lv00    /home/ap    xfs    defaults    0    0
/dev/vg00/lv01    /home/web    ext4    defaults    0    0
 
# 所有非#开头的行加上#
[root@server01 ~]# cat /etc/fstab
 
 
#
# /etc/fstab
# Created by anaconda on Thu May  7 04:17:14 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=d38fd643-eb15-4b3e-b06c-1b7414aaae91 /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/dev/vg00/lv00    /home/ap    xfs    defaults    0    0
/dev/vg00/lv01    /home/web    ext4    defaults    0    0
[root@server01 ~]# cat /etc/fstab |sed -rn 's/^[^#].*/#&/p'
#/dev/mapper/rhel-root   /                       xfs     defaults        0 0
#UUID=d38fd643-eb15-4b3e-b06c-1b7414aaae91 /boot                   xfs     defaults        0 0
#/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
#/dev/vg00/lv00    /home/ap    xfs    defaults    0    0
#/dev/vg00/lv01    /home/web    ext4    defaults    0    0
[root@server01 ~]# cat /etc/fstab |sed -rn 's/^([^#].*)/#\1/p'
#/dev/mapper/rhel-root   /                       xfs     defaults        0 0
#UUID=d38fd643-eb15-4b3e-b06c-1b7414aaae91 /boot                   xfs     defaults        0 0
#/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
#/dev/vg00/lv00    /home/ap    xfs    defaults    0    0
#/dev/vg00/lv01    /home/web    ext4    defaults    0    0
 
# 取目录名
[root@server01 ~]# echo '/etc/sysconfig/network-script'|sed -rn 's/^(\/[a-zA-Z_-]+)\/.*/\1/p'
/etc
[root@server01 ~]# echo '/etc/sysconfig/network-script'|sed -rn 's/.*\/([a-zA-Z_-]+)$/\1/p'
network-script
 
# 取文件的前缀和后缀
[root@server01 ~]# echo 'a.b.c.tgz'|sed -rn 's/(.*)\.[^\.]+$/\1/p'
a.b.c
[root@server01 ~]# echo 'a.b.c.tgz'|sed -rn 's/(.*)\.([^\.]+)$/\2/p'
tgz
[root@server01 ~]# echo 'a.b.c.tgz'|grep -Eo '.*\.'|sed 's/\.$//g'
a.b.c
[root@server01 ~]# echo 'a.b.c.tgz'|grep -Eo '[^.]+$'
tgz
 
# 打印第二行
[root@server01 ~]# ifconfig |sed -n '2p'
        inet 192.168.26.10  netmask 255.255.255.0  broadcast 192.168.26.255
 
# 打印第二行开始带有sbin的行
[root@server01 ~]# sed -n '2,/sbin/p' /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
 
# 不删除原来单词,在原来单词前后加内容
[root@server01 ~]# sed -n 's/root/&123/p' /etc/passwd
root123:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root123:/sbin/nologin
[root@server01 ~]# sed -n 's/root/123&/p' /etc/passwd
123root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/123root:/sbin/nologin
 
# a行后添加,i行前添加,c替换行
[root@server01 ~]# cat /etc/fstab |sed -e '/^$/d' -e '/^#/d' -e '/ext4/a\123'
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=d38fd643-eb15-4b3e-b06c-1b7414aaae91 /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/dev/vg00/lv00    /home/ap    xfs    defaults    0    0
/dev/vg00/lv01    /home/web    ext4    defaults    0    0
123
[root@server01 ~]# cat /etc/fstab |sed -e '/^$/d' -e '/^#/d' -e '/ext4/i\123'
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=d38fd643-eb15-4b3e-b06c-1b7414aaae91 /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/dev/vg00/lv00    /home/ap    xfs    defaults    0    0
123
/dev/vg00/lv01    /home/web    ext4    defaults    0    0
[root@server01 ~]# cat /etc/fstab |sed -e '/^$/d' -e '/^#/d' -e '/ext4/c\123'
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=d38fd643-eb15-4b3e-b06c-1b7414aaae91 /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/dev/vg00/lv00    /home/ap    xfs    defaults    0    0
123
 
# 取机器ip地址
[root@server01 ~]# ip addr|sed -rn 's/inet\s([0-9.]+)\/.*/\1/p'
    127.0.0.1
    192.168.26.10
    192.168.26.15
[root@server01 ~]# ifconfig|sed -nr 's/inet\s+([0-9.]+)\s+netmask.*/\1/p'
        192.168.26.10
        127.0.0.1
 
# 删除centos7系统/etc/grub2.cfg文件所有以空白开头的行首空白字符
# 删除/etc/fstab文件所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
# 在centos6系统/root/install.log的每一行行首添加#号
# 在/etc/fstab文件中不以#开头的行的行首添加#号
# 处理/etc/fstab路径,使用sed命令取出其目录名和基名
# 利用sed取出ifconfig本机的ipv4地址
# 统计centos光盘中Package目录下所有rpm文件的个数
# 统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)
# 将文本文件的n和n+1行合并为一行,n为奇数行
posted @ 2021-06-19 18:09  lzzl  阅读(90)  评论(0)    收藏  举报