Centos7下,sed命令用法介绍

2024-10-24 20:22:00

1、sed命令的使用格式[root@centos7-2 ~]# sed [-nefr] [动作]# sed [option] scripts file1 file2 ...# sed [option] 'AddressCommand' file1 file2 ...Address:表示对哪些行进行处理 Command:操作命令option选项:-nefr

2、sed命令option选项:-nefr-n :不再显示模式空间中的内容(默认显示)-i : 直接修改原文件-e : 同时执行多个匹配操作[root@centos7-2~]# sed -e '/^#/d' -e '/^$/d' /etc/fstab//找出 fstab文件, 开关是#(注释行)与空行。-f :FILE 将多个AddressCommand保存至文件中,每行一个AddressComma[root@centos7-2~]# cat /tmp/file.txt/^#/d/^$/d[root@centos7-2~]# sed -f /tmp/file.txt/etc/fstab//找出 fstab文件, 开关是#(注释行)与空行。-r:表示使用扩展正则表达式 [root@centos7-2~]# sed -r 's|l(..e)|L\1|' /tmp/1.txt--follow-symlinks 修改软链接文件时[root@centos7-2~]# sed --follow-symlinks -i 's|hello|hi|' /tmp/2.txt

3、sed命令Address表示方法:1、StartLine,EndLine 1,100 \\前100行 1,$ \\全文 3,10 \\3到10行 2、LineNumber 3 \\第3行3、StartLine,+n 5,+2 \\从第五行开始起,后2行。 5行6行 /root/,+2 \\匹配root的那行与后一行。4、/正则表达式/ /root/ /bash$/5、 /正则表达式1/, /正则表达式2/第1次被Regex1匹配的行开始,到第1次被Regex2匹配的行中间的所有行

4、sed命令 Command: d 删除符合条件的行 # sed '1,2d' /etc/inittab 删除文件中包含oot的行 # sed '/oot/d' /etc/fstab 删除第1行及其后2行 # sed '1,+2d' /etc/fstab 删除第1行 # sed '1d' /etc/fstab 删除以/开头的行# sed '/^\//d' /etc/fstab p 显示符合条件的行 显示以/开头的行# sed -n '/^\//p' /etc/fstaba \string 在符合条件的行后追加新行,string为追加的内容在以/开头的行后面追加# hello world# sed '/^\//a \# hello world' /etc/fstab在以/开头的行后面追加两行内容,分别为# hello worl # hello linux# sed '/^\//a \# hello world\n# hello linux' /etc/fstab i \string 在符合条件的行前添加新行,string为追加的内容 在文件第1行添加# hello world # sed '1i \# hello world' /etc/fstabc \string 替换指定行的内容 将文件中最后一行内容替换为End Of File # sed '$c \End Of File' /1.txt # sed '7c \SELINUX=disabled' /etc/sysconfig/selinux= 用于显示每一行的行号 显示/etc/passwd文件最后一行的行号 # sed -n '$=' /etc/passwd 49 r file_name 将指定文件的内容添加到符合条件的行的后面 在文件的第2行后追加/etc/issue文件的内容 # sed '2r /etc/issue' /etc/fstab w file_name 将符合条件的内容另存到指定文件中 将以UUID开头的行另存为到/1.txt中 # sed '/^UUID/w /1.txt' /etc/fstab s/regex/string/[修饰符] 查找并替换 默认,只替换每一行第1次出现的字符 修饰符:g:替换每一行所有的字符 i:忽略大小写

猜你喜欢