Linux sed

2023-09-19 06:00:00

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/fstab

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.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 ~]# 

更多推荐

UI设计师的工作职责 优漫动游

五、思维导图软件:MindManager或XMindMindManager或XMind都为思维导图软件,具体使用哪个软件并不重要,根据个人习惯就行。思维导图想必大家在进行策划分析和头脑风暴时,都用过。在UI设计中,也是经常用到。优途UI设计培训中特开设该课程就是主要用来整理产品需求思路、产品架构、产品的交互逻辑等等。总

springBoot整合harbor

<docker.version>3.2.13</docker.version><fastjson.version>1.2.75</fastjson.version><dependencies><dependency><groupId>com.github.docker-java</groupId><artifactId

性能测试 —— 性能测试常见的测试指标 !

一、什么是性能测试先看下百度百科对它的定义,性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达到预估的性能需求,发现系统可能存在的性能瓶颈,进而改善优化并系统的性能,提高系

铁路设备屡遭破坏!RFID电子锁实现铁路防护网破坏实时报警管理

铁路防护网是铁路运输中保障安全的重要组成部分,然而,铁路设备被破坏的情况时有发生,给铁路运输带来了严重的安全隐患和经济损失。一、铁路防护网面临的挑战铁路防护网作为铁路运输的重要保障措施,时刻面临着破坏行为的威胁。传统的锁控系统存在以下问题:开关锁记录不完善:传统锁控系统无法准确记录每次开锁和关锁的时间、地点以及操作人员

Xamarin.Android实现App内版本更新

目录1、具体的效果2、代码实现2.1基本原理2.2开发环境2.3具体代码2.3.1基本设置2.3.2系统的权限授予2.3.3进度条的layout文件2.3.4核心的升级文件3、代码下载4、知识点5、参考文献1、具体的效果有事需要在程序内集成自动更新的功能,网上找了下,改改适配下Xamarin.Android,效果如下2

API接口文档管理系统平台搭建(更新,附系统源码及教程)

简介这是一款简洁大方的API接口文档管理系统,附系统源码及教程方法。可以轻松管理和使用API接口。安装步骤打开config/database.php配置数据库信息导入数据库data.sql设置运行目录为/public伪静态设置thinkPHP后台地址/admin/login.html账号:admin密码:123456源

LLM(一)| 百川智能baichuan7B、13B、53B以及baichuan2总结

之前在文章baichuan-53BVSChatGLM-6B对比中做过百川大模型53B和ChatGLM6B模型的效果对比,由于百川大模型的内测模型是53B,因此本次对比参数量差异较大,但仍然可以看到两个模型的效果。百川大模型在benchmark上有超越ChatGLM和LLaMA的迹象,尤其是在中文任务上的表现,下面分别对

让Pegasus天马座开发板吃上STM8S标准库

WeCanStudio官方仓库的示例工程,只提供基于STM8S003寄存器方式来开发Pegasus天马座开发板。在此,我将基于官方的工程示例,将STM8S标准库移植到工程中。先上图,看运行结果:main.c文件#include"config.h"#include"delay.h"#defineLED_GPIO_PORT

OpenGL之着色器

着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间唯一的沟通只有通过输入和输出。GLSL着色器是使用一种叫GLSL的类C语言写成的。GLSL是为图形计算量身

MyCat主从数据库集群搭建

1背景最近工作需要对比几种数据库技术方案,主从读写分离集群也是其中之一。接着上一篇文章《MySQL主从数据库搭建》基础上继续搭建MyCat主从集群。2MyCat什么是MyCat?MyCat是数据库中间件,就是介于数据库和应用之间,进行数据处理与交互的中间服务。可以对数据进行分片处理,从原有一个库,被切分为多个分片数据库

安装torch113、cuda116并运行demo【Transformer】

文章目录01.导读02.显卡驱动版本03.创建环境、下载安装必要包04.运行参考代码:01.导读安装torch113、cuda116并运行demo【Transformer】02.显卡驱动版本C:\Users\Administrator>nvidia-smi-l10WedSep1323:35:082023±-------

热文推荐