格式:

sed 选项 '命令' 要修改的文件

sed 选项 -f 包含命令的文件 要修改的文件

选项:

-e 在命令行上进行sed动作编辑,默认选项

-i 直接修改文件内容,跳过缓冲区

-n 只打印匹配的行

-r 支持扩展表达式

常用:

sed -i "s/$releasever/8/g"  Centos-8.repo  将后面repo文件的版本参数$releasever替换为8

sed -i "s/4K/1M/g"  fio.fuse.randread.job  将文件中的4K替换为1M

sed -i -e 's|^GRUB_CMDLINE_LINUX=\"|GRUB_CMDLINE_LINUX=\"cgroup.memory=nokmem |g' /etc/default/grub  将文件中的GRUB_CMDLINE_LINUX="替换为GRUB_CMDLINE_LINUX="cgroup.memory=nokmem  即在原来的赋值内容中添加cgroup.memory=nokmem

sed '/^$/d' file 删除空白行

 

sed 's/book/books/' test.txt  把test.txt文件中的book替换为books输出到屏幕,只是输出内容改变,源文件内容不变

sed -n 's/book/books/p' test.txt  用-n选项和p命令只打印那些发生替换的行,只是输出内容改变,源文件内容不变

sed -i 's/book/books/' test.txt   用-i选项将第一行的第一个book替换为books,源文件内容改变

sed -i 's/book/books/g' test.txt  用-i选项和g命令将全文的book替换为books,源文件内容改变

sed -i '1,4s/book/books/' test.txt   将1-4行每一行的第一个book替换为books,源文件内容改变

sed -i '1,4s/book/books/2g' test.txt   将1-4行每一行第二个book开始至行尾的book替换books,源文件内容改变

sed -i '1,4s/book/books/4' test.txt   将1-4行每一行第四个book替换为books,源文件内容改变

echo sksk/sksk/sksk/sk/sksk | sed 's/\///g' 将文本中的/删除,或者使用其它定界符:echo sksk/sksk/sksk/sk/sksk | sed 's#/##g'      echo sksk/sksk/sksk/sk/sksk | sed 's$/$$g' 

sed '2d' file 删除第2行

sed '2,$d' file 删除2行到末尾所有行

sed '$d' file 删除文件最后一行

sed '/^test/'d file 删除文件所有test开头的行  

echo this is a test line | sed 's/\w\+/[&]/g' 正则表达式\w\+匹配每一个单词,以[&]格式进行输出,&表示匹配到的每个单词

示例:获取ip地址和广播地址

[root@server1 ~]# ip addr|sed -nr 's#^.*inet (.*)/24.*brd (.*) scope.*$#ipaddress:\1 broadcast:\2#gp'

ipaddress:192.168.88.128 broadcast:192.168.88.255

posted on 2022-04-20 18:13  如雷贯耳  阅读(182)  评论(0)    收藏  举报