Linux基础——sed工具总结

1、将字段串“plugins=1”替换为“plugins=0”

sed -i 's/plugins=1/plugins=0/g' /etc/yum.conf

 

2、将字符串“\$1>="\$date_source" \&\& \$1<="\$date_dest"”替换为“\$1>='\"\$date_source\"' \&\& \$1<='\"\$date_dest\"'”

sed -i 's/\$1>="\$date_source" \&\& \$1<="\$date_dest"/\$1>='\"\$date_source\"' \&\& \$1<='\"\$date_dest\"'/g' check_sarlog.sh
注意:
"\$1":加\反编译特殊字符"$";
"\&\&":加\反编译特殊字符字符"&";
"\$date_dest":加\反编译特殊字符字符"$";

 

3、删除关键字"111",避免存在空行导致shell脚本或者配置config执行报错

sed -i "/111/d" /tmp/text.txt

[root@Harbor ~]# cat /tmp/text.txt
111
222
333
[root@Harbor ~]# sed -i "/111/d" /tmp/text.txt
[root@Harbor ~]# cat /tmp/text.txt
222
333

 

4、打印关键字“DNS”行

[root@Harbor ~]# sed -n "/DNS/p" /etc/ssh/sshd_config 
#UseDNS no

5、删除文件text.txt第二行"222 two"并打印

[root@Harbor tmp]# cat text.txt 
111 one
222 two
333 three
[root@Harbor tmp]# sed '2d' text.txt 
111 one
333 three

6、删除文件text.txt多行并打印

# 删除第一行到第二行
[root@Harbor tmp]# sed '1,2d' text.txt 333 three
# 删除第二行到第三行 [root@Harbor tmp]#
sed '2,3d' text.txt 111 one

7、删除[Tt]大小写wo的字符并打印

[root@Harbor tmp]# sed '/[Tt]wo/d' text.txt 
111 one
333 three

8、打印指定3,4行

[root@Harbor tmp]# sed -n "3,4p" text.txt 
333 three
444 Two

9、打印第3到第4行将字符Two和two替换为Ten

[root@Harbor tmp]# sed '1,4s/[Tt]wo/Ten/g' text.txt 
111 one
222 Ten
333 three
444 Ten

10、删除不包含字符Two和two行并打印

[root@Harbor tmp]# sed '/[Tt]wo/!d' text.txt 
222 two
444 Two

11、打印包含字符Two和two的行到文件/tmp/tmp.txt

[root@Harbor tmp]# sed -n '/[Tt]wo/w /tmp/tmp.txt' text.txt 
[root@Harbor tmp]# cat /tmp/tmp.txt
222 two
444 Two

 12、删除空行和空格

# 查看每行特殊字符
base) [root@NewOSBC8 ~]# cat -A 111.txt 111$ $ 111$ 222$ 5555$ $
# 删除空行字符“$”和删除(制表符、空格) (base) [root@NewOSBC8
~]# cat 111.txt | sed 's/^[\t ]*\|[\t ]*$//g' | sed '/^\s*$/d' 111 111 222 5555

 13、删除尾部7个字符

[root@sysmt ~]# yum list available --showduplicates  | grep "$(uname -r | sed 's/.......$//')"
bpftool.x86_64                                       4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel.x86_64                                        4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-abi-whitelists.noarch                         4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-core.x86_64                                   4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-cross-headers.x86_64                          4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-debug.x86_64                                  4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-debug-core.x86_64                             4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-debug-devel.x86_64                            4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-debug-modules.x86_64                          4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-debug-modules-extra.x86_64                    4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-debug-modules-internal.x86_64                 4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-devel.x86_64                                  4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-doc.noarch                                    4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-headers.x86_64                                4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-ipaclones-internal.x86_64                     4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-modules.x86_64                                4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-modules-extra.x86_64                          4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-modules-internal.x86_64                       4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-selftests-internal.x86_64                     4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-tools.x86_64                                  4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-tools-libs.x86_64                             4.19.0-240.23.29.el8_2.bclinux                      BaseOS
kernel-tools-libs-devel.x86_64                       4.19.0-240.23.29.el8_2.bclinux                      BaseOS
perf.x86_64                                          4.19.0-240.23.29.el8_2.bclinux                      BaseOS
python3-perf.x86_64                                  4.19.0-240.23.29.el8_2.bclinux                      BaseOS

 14、删除内容不留空行

[root@harbor gk]# sed -i '\|^/dev/sdb[[:space:]]*/data|d' /etc/fstab
  • \|^...|:使用 | 作为分隔符,避免路径中的 / 冲突。
  • /dev/sdb/data 是你要匹配的挂载点和挂载路径。
  • [[:space:]]*:匹配任意数量的空格或制表符,兼容格式差异。
  • d:删除匹配到的整行。
  • -i:直接修改原文件(慎用,建议先备份)。

[root@harbor gk]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Thu Jul 13 12:45:15 2023
#
# 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/bigcloud--enterprise--linux--for--euler-root /                       ext4    defaults        1 1
UUID=1b5815cd-92e5-4c5b-ba32-f410de2580cb /boot                   ext4    defaults        1 2
#/dev/mapper/bigcloud--enterprise--linux--for--euler-swap none                    swap    defaults        0 0

15、删除空行

#查看空行
[root@harbor gk]# cat /etc/fstab 空行 # # /etc/fstab # Created by anaconda on Thu Jul 13 12:45:15 2023 # # 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. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # /dev/mapper/bigcloud--enterprise--linux--for--euler-root / ext4 defaults 1 1 UUID=1b5815cd-92e5-4c5b-ba32-f410de2580cb /boot ext4 defaults 1 2 #/dev/mapper/bigcloud--enterprise--linux--for--euler-swap none swap defaults 0 0 空行

#测试删除空行(不生效) [root@harbor gk]#
sed '/^[[:space:]]*$/d' /etc/fstab # # /etc/fstab # Created by anaconda on Thu Jul 13 12:45:15 2023 # # 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. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # /dev/mapper/bigcloud--enterprise--linux--for--euler-root / ext4 defaults 1 1 UUID=1b5815cd-92e5-4c5b-ba32-f410de2580cb /boot ext4 defaults 1 2 #/dev/mapper/bigcloud--enterprise--linux--for--euler-swap none swap defaults 0 0


# 加参数“-i”删除空行(生效) [root@harbor gk]# sed -i '/^[[:space:]]*$/d' /etc/fstab [root@harbor gk]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Thu Jul 13 12:45:15 2023 # # 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. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # /dev/mapper/bigcloud--enterprise--linux--for--euler-root / ext4 defaults 1 1 UUID=1b5815cd-92e5-4c5b-ba32-f410de2580cb /boot ext4 defaults 1 2 #/dev/mapper/bigcloud--enterprise--linux--for--euler-swap none swap defaults 0 0

 

posted on 2024-12-04 15:28  gkhost  阅读(37)  评论(0)    收藏  举报

导航