Linux sed

1.sed介绍

sed:Stream Editor,流编辑器、行编辑器、逐行编辑

sed将每行内容读入到“内存”中,在内存中进行处理,将结果返回给屏幕,此段内存空间称为模式空间。

sed默认不编辑原文件,仅对模式空间的数据进行处理,处理结束后,将模式空间的内容显示到屏幕

2.sed语法

sed命令的语法格式

sed [option] scripts file1 file2 ...

sed [option] 'AddressCommand' file1 file2 ...

   Address:表示对哪些行进行处理

   Address表示方法:

   1.StartLine,EndLine

      1,100

      1,$

    2.LineNumber

       3

     3.StartLine,+n

        5,+2

     4./正则表达式/

        /root/

        /bash$/

      5./REGEX1/,/REGEX2/

        第1次被Regex1匹配的行开始,到第1次被Regex2匹配的行中间的所有行

      6.StartLine,EndLine!

        查询不包括StartLine和EndLine行号的行 

    Command:操作命令

    Command表示方法:

      d  -->删除符合条件的行

      p  -->显示符合条件的行

      r  -->从另一个文件中读文件

      w  -->将文本写入到一个文件

      y  -->变换字符

      =  -->打印文件行号

      a\  -->在定位行号之后追加文本信息

      i\  -->在定位行号之前插入文本信息

      c\  -->用新文本替换定位文本

      s  -->使用替换模式替换相应模式

   option选项:

      -n:不再显示模式空间中的内容(默认显示)

      -i:直接修改原文件

      -e 'AddressCommand' -e 'AddressCommand'   同时执行多个匹配操作

      -f FILE:将多个AddressCommand保存至文件中,每行一个AddressCommand,读取该文件中的操作同时执行多个操作

     -r:表示使用扩展正则表达式

3.样例

3.1.删除符合条件的行

命令:

sed '1,2d' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '1,2d' /etc/fstab
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.2.删除文件中包含UUID的行

命令:

sed '/UUID/d' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '/UUID/d' /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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_rhel77-var /var                    xfs     defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.3.删除文件第1行及其后2行

命令:

sed '1,+2d' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '1,+2d' /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.4.删除文件第1行和最后1行

命令:

sed '1d;$d' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '1d;$d' /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
[root@rhel77 ~]# 

3.5.删除文件以#开头的行

命令:

sed '/^#/d' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '/^#/d' /etc/fstabUUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.6.删除匹配UUID行至最后1行

命令:

sed '/^UUID/,$d' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '/^UUID/,$d' /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
[root@rhel77 ~]# 

3.7.打印文件中的第1行和最后1行

命令:

sed -n '1p;$p' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed -n '1p;$p' /etc/fstab/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.8.在符合条件的文件行后追加新行

命令:

sed '/^#/a \# hello world' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '/^#/a \# hello world' /etc/fstab#
# hello world
# /etc/fstab
# hello world
# Created by anaconda on Fri Jun  3 09:41:30 2022
# hello world
#
# hello world
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# hello world
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
# hello world
#
# hello world
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.9.在符合条件的文件行前追加新行

命令:

sed '1i \#hello world' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '1i \#hello world' /etc/fstab
#hello world#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.10.替换指定文件行的内容

命令:

sed '$c \End of File' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '$c \End of File' /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
End of File
[root@rhel77 ~]# 

3.11.综合案例(编辑网卡配置文件-仅测试)

命令:

cd /etc/sysconfig/network-scripts

sed -e '/^BOOT/c \BOOTPROTO=none' -e '$a \IPADDR=1.1.1.1\nNETMASK=255.255.255.0\nGATEWAY=1.1.1.1' ifcfg-ens33

[root@rhel77 network-scripts]# sed -e '/^BOOT/c \BOOTPROTO=none' -e '$a \IPADDR=1.1.1.1\nNETMASK=255.255.255.0\nGATEWAY=1.1.1.1' ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=a85bdd78-9692-4021-909f-3b6d5c3f2eec
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.10.110
#PREFIX=24
#GATEWAY=192.168.10.1
IPV6_PRIVACY=no
IPADDR=1.1.1.1
NETMASK=255.255.255.0
GATEWAY=1.1.1.1
[root@rhel77 network-scripts]# 

3.12.替换文件中UUID为uuid

命令:

sed 's/UUID/uuid/g' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed 's/UUID/uuid/g' /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
uuid=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
uuid=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
uuid=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
uuid=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.13.在/etc/fstab查找以UUID开头的行,在其后添加字符串ztj

命令:

sed 's/^UUID/&ztj/g' /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed 's/^UUID/&ztj/g' /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUIDztj=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUIDztj=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUIDztj=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUIDztj=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.14.在/etc/fstab查找以UUID开头的行,在其行首添加字符串ztj

命令:

sed '/^UUID/s/^/&ztj/' /etc/fstab
 

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '/^UUID/s/^/&ztj/' /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
ztjUUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
ztjUUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
ztjUUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
ztjUUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.15.多个sed命令组合

命令:

sed  -e  '/^UUID/s/^/&1./;s/0$/&./g'  /etc/fstab

[root@rhel77 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed  -e  '/^UUID/s/^/&1./;s/0$/&./g'  /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
1.UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0.
1.UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0.
1.UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0.
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0.
1.UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0.
/dev/cdrom	/mnt	iso9660	defaults	0 0.
/dev/data_vg/data_lv /mbox xfs defaults 0 0.
[root@rhel77 ~]# 

3.16.sed读取系统变量,变量替换

命令:

variable=ztj

sed "s/UUID/$variable/g" /etc/fstab

[root@rhel77 ~]# variable=ztj
[root@rhel77 ~]# sed "s/UUID/$variable/g" /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
ztj=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
ztj=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
ztj=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
ztj=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.17.修改文件中不包含UUID的行,然后将其行uuid值改成ztj

命令:

sed  '/UUID/!s/ztj/uuid/g' fstab

[root@rhel77 ~]# cat fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
ztj=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
ztj=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
ztj=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
ztj=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed  '/UUID/!s/ztj/uuid/g' fstab #
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
uuid=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
uuid=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
uuid=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
uuid=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.18.修改文件中包含ztj的行,然后将其行ztj值改成uuid

命令:

sed '/ztj/s/ztj/uuid/gi' fstab

g:替换每一行所有的字符

i:忽略大小写

[root@rhel77 ~]# cat fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
ztj=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
ztj=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
ztj=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
ztj=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# sed '/ztj/s/ztj/uuid/gi' fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
uuid=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
uuid=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
uuid=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
uuid=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.19.合并文件上下两行

命令:

sed 'N;s/\n/  /' fatab

[root@rhel77 ~]# sed 'N;s/\n/  /' fstab#
# /etc/fstab  # Created by anaconda on Fri Jun  3 09:41:30 2022
#  # 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  #
ztj=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0  ztj=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
ztj=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0  /dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
ztj=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0  /dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.20.统计文件行数

命令:

sed -n '$=' /etc/fstab

[root@rhel77 ~]# sed -n '$=' /etc/fstab
15
[root@rhel77 ~]# 

3.21.将指定文件的内容添加到符合条件的行的后面

命令:

sed '2r /etc/hosts' /etc/fstab

在/etc/fstab文件的第2行后追加/etc/hosts文件的内容

[root@rhel77 ~]# sed '2r /etc/hosts' /etc/fstab#
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.110	rhel77.boc.com	rhel77
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# 

3.22.将符合条件的内容另存到指定文件中

命令:

sed '/^UUID/w /tmp/ztj.txt' /etc/fstab

cat /tmp/ztj.txt

将/etc/fstab文件以UUID开头的行另存到/tmp/ztj.txt文件中

[root@rhel77 ~]# sed '/^UUID/w /tmp/ztj.txt' /etc/fstab#
# /etc/fstab
# Created by anaconda on Fri Jun  3 09:41:30 2022
#
# 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
#
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
/dev/mapper/rhel_rhel77-var /var                    xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
/dev/cdrom	/mnt	iso9660	defaults	0 0
/dev/data_vg/data_lv /mbox xfs defaults 0 0
[root@rhel77 ~]# cat /tmp/ztj.txt 
UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b /                       xfs     defaults        0 0
UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot                   xfs     defaults        0 0
UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home                   xfs     defaults        0 0
UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap			  swap    defaults        0 0
[root@rhel77 ~]# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/82093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OA 电子审批流程是什么?

公司中,最最最常见也是最最最多的就是——各种审批。 我当年第一次实习,在一家国企的行政部门,我们部门领导那个时候最主要的工作就是“打通流程”,咱也不知道他在打通什么流程,反正这个很重要就是了。 结果&#xf…

CSS动效合集之实现气泡发散动画

前言 👏CSS动效合集之实现气泡发散动画,速速来Get吧~ 🥇文末分享源代码。记得点赞关注收藏! 1.实现效果 2.实现步骤 定义一个数组bubbles,用来存储气泡列表的基本新,w表示宽高,x表示绝对定位…

【Python基础】P01S01 变量与字符串

P01S01 变量与字符串 变量变量的命名规则 字符串字符串的表达方法字符串的基本操作 数整数与浮点数数中下划线常量 注释 变量 变量的命名规则 变量名只能包含字母、数字和下划线; 变量名能以字母或下划线开头,但是不能以数字开头; 变量名不能…

130. 被围绕的区域

130. 被围绕的区域 题目-中等难度示例1. 新建boardbfs2. 哈希bfs 题目-中等难度 给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例 示例 1&#x…

6.SpringEL与List,Map

SpringEL与List,Map 文章目录 SpringEL与List,Map介绍Spring EL以注解的形式Spring EL以XML的形式 介绍 使用SpEL与 Map 和 List 的工作方式与Java是完全一样的 //get map whete key MapA Value("#{testBean.map[MapA]}") private String mapA;//get first value …

浅谈C++|类的继承篇

引子: 继承是面向对象三大特性之一、有些类与类之间存在特殊的关系,例如下图中: 我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。 这个时候我们就可以考虑利用继承的技术,减少…

2023全新TwoNav开源网址导航系统源码 | 去授权版

2023全新TwoNav开源网址导航系统源码 已过授权 所有功能可用 测试环境:NginxPHP7.4MySQL5.6 一款开源的书签导航管理程序,界面简洁,安装简单,使用方便,基础功能免费。 TwoNav可帮助你将浏览器书签集中式管理&#…

线程池启动线程 submit () 和 execute () 方法有什么不同?

ThreadPoolExecutor类是Java中用于创建和管理线程池的类,它提供了多个方法来提交任务给线程池,其中包括submit()和execute()方法。这两种方法有以下不同: 返回值:submit()方法返回一个Future对象,可以使用这个对象来跟踪任务的执行状态并获取任务的结果(如果有的话)。Fu…

JWT基础

概念 JSON Web Token本质上就是一串字符串,一串包含了很多信息的字符串令牌拥有三个部分头部-包含加密算法和令牌类型{"alg":"算法名称","type":"JWT"}负载-包含数据和信息-七个官方默认-也可以自己定义内容{iss&#xff…

ubuntu+.net6+docker 应用部署教程

先期工作 1、本地首先安装 Docker Desktop 2、本地装linux in windows 3、生成镜像 后期工作 1、云服务器部署 生成镜像方法 1、生成Dockerfile配置文件 开发工具visual studio 2022 如果项目已经存在,可以选中项目,右键点击->选择添加Docker…

基于Java的高校竞赛管理系统设计与实现(亮点:发起比赛、报名、审核、评委打分、获奖排名,可随意更换主题如蓝桥杯、ACM、王者荣耀、吃鸡等竞赛)

高校竞赛管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序(小蔡coding)2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述4.2 系统角色 五、系统…

基于Matlab实现图像配准技术(附上源码+图像)

图像配准是数字图像处理中的重要技术之一,它的目标是将多幅图像进行准确的对齐,使得它们在空间上保持一致。图像配准在许多领域都有广泛的应用,如医学影像、遥感图像、计算机视觉等。本文将介绍如何使用Matlab实现图像配准技术,并…

Flink相关

墨滴社区 用 Flink 取代 Spark Streaming!知乎实时数仓架构演进_天池技术圈-阿里云天池 关于flink实时数仓的实际问题_flink datastream 按天,小时写入hdfs_一个写湿的程序猿的博客-CSDN博客 基于 Flink Hudi 的实时数仓在 Shopee 的实践 - 墨天轮

6.3 字符数组

思维导图: 前言: 主要内容: 前言内容整理 字符型数据和存储 字符型数据是依据字符的ASCII代码存储在内存单元中,通常占用一个字节的空间。ASCII代码可以被认为是整数,因此在C99标准中,字符类型被归类为整…

nodejs中的错误类型及捕获处理

nodejs中的错误类型及捕获处理 在 node 中,提供了 error 模块,并且内置了标准的 JavaScript 错误,本文将介绍在node中错误类型以及如何捕获。 错误类型 js错误 标准的js错误,跟在浏览器中运行js时提示的错误类型一样 RangeEr…

【Gradle-8】Gradle插件开发指南

1、前言 Gradle插件开发在Android进阶知识中是占有一定比例的,特别是在性能优化领域,基本都会涉及,而且跟我们日常的编译打包也息息相关,加上有不少招聘要求里也明确要有Gradle插件开发经验,所以即使大部分人的日常开…

SSH key 运作方式

1、本地创建SSH key pairs 2、把public key上传到网站服务器(如GitHub 3、当使用ssh方式连接时 本地SSH client向远端请求ssh连接远端发来random data要求加密本地ssh client用private key加密,把加密的data发送过去(不发送private key远端接…

I Pa?sWorD

2023icpc网络赛第一场 I 题意:题目给出只包含大小写字母,数字以及?的字符串,对于每一个小写字母,这一位字符既有可能是该小写字母,也有可能是该小写字母的对应大写字母,也就是该位的字符有两种可能&#x…

51单片机 矩阵键盘

按列扫描 #include <REGX52.H> #include "Delay.h"/*** brief 矩阵键盘读取按键键码* param 无* retval KeyNumber 按下按键的键码值如果按键按下不放&#xff0c;程序会停留在此函数&#xff0c;松手的一瞬间&#xff0c;返回按键键码&#xff0c;没有按键…

分布式ETL工具Sqoop实践

Mysql数据准备 1、在node02节点登录Mysql。 mysql -uroot -proot2、新建数据库testdb。 create database testdb;3、新建数据表ts。 use testdb; create table ts(id int, name varchar(10), age int, sex char(1));4、向表中插入数据。 insert into ts values(10001,张三…