• 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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '1,2d' /etc/fstab
    17. # /etc/fstab
    18. # Created by anaconda on Fri Jun 3 09:41:30 2022
    19. #
    20. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    21. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    22. #
    23. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    24. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    25. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    26. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    27. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    28. /dev/cdrom /mnt iso9660 defaults 0 0
    29. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    30. [root@rhel77 ~]#

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

    命令:

    sed '/UUID/d' /etc/fstab

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '/UUID/d' /etc/fstab
    17. #
    18. # /etc/fstab
    19. # Created by anaconda on Fri Jun 3 09:41:30 2022
    20. #
    21. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    22. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    23. #
    24. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    25. /dev/cdrom /mnt iso9660 defaults 0 0
    26. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    27. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '1,+2d' /etc/fstab
    17. # Created by anaconda on Fri Jun 3 09:41:30 2022
    18. #
    19. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    20. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    21. #
    22. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    23. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    24. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    25. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    26. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    27. /dev/cdrom /mnt iso9660 defaults 0 0
    28. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    29. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '1d;$d' /etc/fstab
    17. #
    18. # /etc/fstab
    19. # Created by anaconda on Fri Jun 3 09:41:30 2022
    20. #
    21. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    22. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    23. #
    24. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    25. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    26. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    27. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    28. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    29. /dev/cdrom /mnt iso9660 defaults 0 0
    30. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '/^#/d' /etc/fstab
    17. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    18. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    19. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    20. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    21. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    22. /dev/cdrom /mnt iso9660 defaults 0 0
    23. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    24. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '/^UUID/,$d' /etc/fstab
    17. #
    18. # /etc/fstab
    19. # Created by anaconda on Fri Jun 3 09:41:30 2022
    20. #
    21. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    22. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    23. #
    24. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed -n '1p;$p' /etc/fstab
    17. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    18. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '/^#/a \# hello world' /etc/fstab
    17. #
    18. # hello world
    19. # /etc/fstab
    20. # hello world
    21. # Created by anaconda on Fri Jun 3 09:41:30 2022
    22. # hello world
    23. #
    24. # hello world
    25. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    26. # hello world
    27. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    28. # hello world
    29. #
    30. # hello world
    31. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    32. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    33. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    34. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    35. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    36. /dev/cdrom /mnt iso9660 defaults 0 0
    37. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    38. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '1i \#hello world' /etc/fstab
    17. #hello world
    18. #
    19. # /etc/fstab
    20. # Created by anaconda on Fri Jun 3 09:41:30 2022
    21. #
    22. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    23. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    24. #
    25. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    26. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    27. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    28. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    29. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    30. /dev/cdrom /mnt iso9660 defaults 0 0
    31. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    32. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '$c \End of File' /etc/fstab
    17. #
    18. # /etc/fstab
    19. # Created by anaconda on Fri Jun 3 09:41:30 2022
    20. #
    21. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    22. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    23. #
    24. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    25. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    26. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    27. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    28. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    29. /dev/cdrom /mnt iso9660 defaults 0 0
    30. End of File
    31. [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

    1. [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
    2. TYPE=Ethernet
    3. PROXY_METHOD=none
    4. BROWSER_ONLY=no
    5. BOOTPROTO=none
    6. DEFROUTE=yes
    7. IPV4_FAILURE_FATAL=no
    8. IPV6INIT=yes
    9. IPV6_AUTOCONF=yes
    10. IPV6_DEFROUTE=yes
    11. IPV6_FAILURE_FATAL=no
    12. IPV6_ADDR_GEN_MODE=stable-privacy
    13. NAME=ens33
    14. UUID=a85bdd78-9692-4021-909f-3b6d5c3f2eec
    15. DEVICE=ens33
    16. ONBOOT=yes
    17. #IPADDR=192.168.10.110
    18. #PREFIX=24
    19. #GATEWAY=192.168.10.1
    20. IPV6_PRIVACY=no
    21. IPADDR=1.1.1.1
    22. NETMASK=255.255.255.0
    23. GATEWAY=1.1.1.1
    24. [root@rhel77 network-scripts]#

    3.12.替换文件中UUID为uuid

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed 's/UUID/uuid/g' /etc/fstab
    17. #
    18. # /etc/fstab
    19. # Created by anaconda on Fri Jun 3 09:41:30 2022
    20. #
    21. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    22. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    23. #
    24. uuid=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    25. uuid=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    26. uuid=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    27. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    28. uuid=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    29. /dev/cdrom /mnt iso9660 defaults 0 0
    30. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    31. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed 's/^UUID/&ztj/g' /etc/fstab
    17. #
    18. # /etc/fstab
    19. # Created by anaconda on Fri Jun 3 09:41:30 2022
    20. #
    21. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    22. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    23. #
    24. UUIDztj=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    25. UUIDztj=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    26. UUIDztj=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    27. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    28. UUIDztj=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    29. /dev/cdrom /mnt iso9660 defaults 0 0
    30. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    31. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '/^UUID/s/^/&ztj/' /etc/fstab
    17. #
    18. # /etc/fstab
    19. # Created by anaconda on Fri Jun 3 09:41:30 2022
    20. #
    21. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    22. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    23. #
    24. ztjUUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    25. ztjUUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    26. ztjUUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    27. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    28. ztjUUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    29. /dev/cdrom /mnt iso9660 defaults 0 0
    30. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    31. [root@rhel77 ~]#

    3.15.多个sed命令组合

    命令:

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

    1. [root@rhel77 ~]# cat /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed -e '/^UUID/s/^/&1./;s/0$/&./g' /etc/fstab
    17. #
    18. # /etc/fstab
    19. # Created by anaconda on Fri Jun 3 09:41:30 2022
    20. #
    21. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    22. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    23. #
    24. 1.UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0.
    25. 1.UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0.
    26. 1.UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0.
    27. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0.
    28. 1.UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0.
    29. /dev/cdrom /mnt iso9660 defaults 0 0.
    30. /dev/data_vg/data_lv /mbox xfs defaults 0 0.
    31. [root@rhel77 ~]#

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

    命令:

    variable=ztj

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

    1. [root@rhel77 ~]# variable=ztj
    2. [root@rhel77 ~]# sed "s/UUID/$variable/g" /etc/fstab
    3. #
    4. # /etc/fstab
    5. # Created by anaconda on Fri Jun 3 09:41:30 2022
    6. #
    7. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    8. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    9. #
    10. ztj=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    11. ztj=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    12. ztj=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    13. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    14. ztj=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    15. /dev/cdrom /mnt iso9660 defaults 0 0
    16. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    17. [root@rhel77 ~]#

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

    命令:

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

    1. [root@rhel77 ~]# cat fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. ztj=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. ztj=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. ztj=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. ztj=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '/UUID/!s/ztj/uuid/g' fstab
    17. #
    18. # /etc/fstab
    19. # Created by anaconda on Fri Jun 3 09:41:30 2022
    20. #
    21. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    22. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    23. #
    24. uuid=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    25. uuid=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    26. uuid=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    27. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    28. uuid=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    29. /dev/cdrom /mnt iso9660 defaults 0 0
    30. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    31. [root@rhel77 ~]#

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

    命令:

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

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

    i:忽略大小写

    1. [root@rhel77 ~]# cat fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. ztj=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. ztj=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. ztj=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. ztj=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# sed '/ztj/s/ztj/uuid/gi' fstab
    17. #
    18. # /etc/fstab
    19. # Created by anaconda on Fri Jun 3 09:41:30 2022
    20. #
    21. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    22. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    23. #
    24. uuid=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    25. uuid=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    26. uuid=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    27. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    28. uuid=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    29. /dev/cdrom /mnt iso9660 defaults 0 0
    30. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    31. [root@rhel77 ~]#

    3.19.合并文件上下两行

    命令:

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

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

    3.20.统计文件行数

    命令:

    sed -n '$=' /etc/fstab

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

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

    命令:

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

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

    1. [root@rhel77 ~]# sed '2r /etc/hosts' /etc/fstab
    2. #
    3. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    4. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    5. 192.168.10.110 rhel77.boc.com rhel77
    6. # /etc/fstab
    7. # Created by anaconda on Fri Jun 3 09:41:30 2022
    8. #
    9. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    10. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    11. #
    12. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    13. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    14. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    15. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    16. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    17. /dev/cdrom /mnt iso9660 defaults 0 0
    18. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    19. [root@rhel77 ~]#

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

    命令:

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

    cat /tmp/ztj.txt

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

    1. [root@rhel77 ~]# sed '/^UUID/w /tmp/ztj.txt' /etc/fstab
    2. #
    3. # /etc/fstab
    4. # Created by anaconda on Fri Jun 3 09:41:30 2022
    5. #
    6. # Accessible filesystems, by reference, are maintained under '/dev/disk'
    7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    8. #
    9. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    10. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    11. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    12. /dev/mapper/rhel_rhel77-var /var xfs defaults 0 0
    13. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    14. /dev/cdrom /mnt iso9660 defaults 0 0
    15. /dev/data_vg/data_lv /mbox xfs defaults 0 0
    16. [root@rhel77 ~]# cat /tmp/ztj.txt
    17. UUID=c0d6afed-f0cd-4575-9c5d-ce302451860b / xfs defaults 0 0
    18. UUID=bfca56f5-9ad7-4439-8bcb-39663a13ed57 /boot xfs defaults 0 0
    19. UUID=bd04b731-2fd8-4c92-8620-6981f9d82be0 /home xfs defaults 0 0
    20. UUID=3c784a4d-e8f2-46a5-a0af-d6d21e0410a5 swap swap defaults 0 0
    21. [root@rhel77 ~]#

  • 相关阅读:
    Ubuntu 22.04 搭建 KubeSphere 3.4.1 集群
    定时器概述
    淘宝天猫API_获取商品详情原数据
    点云数据结构化与体素化理论学习
    Cesium 基础知识和文档记录
    【滴滴出行安全应急响应平台DSRC2倍积分卡】
    【Ubuntu】Anaconda的安装和使用
    who命令
    【动手学深度学习PyTorch版】19 网络中的网络 NiN
    PythonOcc + pyqt 显示——stp step文件导入 部件识别 爆炸图展示
  • 原文地址:https://blog.csdn.net/z19861216/article/details/132490805