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
稳步前行,只争朝夕。
浙公网安备 33010602011771号