sed替换_sed修改文件某一行

sed替换_sed修改文件某一行1. sed可以替换给定的文本中的字符串,可以利用正则表达式进行匹配$ sed 's/pattern/replace_string/' file或者$ cat file | sed 's/pattern/replace_string/' file使用-i选项,可以将替

sed替换_sed修改文件某一行

1. sed可以替换给定的文本中的字符串,可以利用正则表达式进行匹配
$ sed ‘s/pattern/replace_string/’ file
或者
$ cat file | sed ‘s/pattern/replace_string/’ file
使用-i选项,可以将替换的结果应用于原文件,也可以借助重定向来保存文件:
sed ‘s/text/replace/’ file > newfile
其实可以使用
sed -i ‘s/pattern/replace_string/’ file
后缀/g意味着替换每一处,有时候不需要替换前N处匹配,有一个选项可以用来忽略前N处匹配,并从第N+1处开始替换。
$ echo this thisthisthis | sed ‘s/this/THIS/2g’
$ echo this thisthisthis | sed ‘s/this/THIS/3g’
当需要从第N处开始匹配时,可以使用/Ng
字符/在sed中作为定界符使用,也可以用其他字符代替。

1. 删除空白行
sed ‘/^$/d’ file

2. 已匹配的字符串标记&
echo this is an example | sed ‘s/\w\+/[&]/g’
正则表达式\w\+匹配每个单词,然后用[&]来替换它,&对应于之前所匹配的单词。

3. 子串匹配标记\1
&代表匹配给定样式的字符串,但我们也可以匹配给定样式的其中一部分
echo this is digit 7 in a number | sed ‘s/digit \([0-9]\)/\1/’
这条命令将digit 7 替换成7,样式中匹配到的子串是7,\(pattern\)用于匹配子串,模式被包括在使用斜线转义过的()中,对于匹配到的第一个子串,其对应的标记是\1,匹配到的第二个子串是\2,往后依次类推,下面示例中包含了多个匹配:
echo seven EIGHT | sed ‘s/\([a-z]\+\) \([A-Z]\+\)/\2 \1/’

4. 引用
$text=hello
echo “hello world” | sed “s/$text/HELLO/”

5. 追加内容 sed ‘/匹配词/a\要加入的内容’ example.file(将内容追加到匹配的目标行的下一行位置)
i 插入内容 sed ‘/匹配词/i\要加入的内容’ example.file 将内容插入到匹配的行目标的上一行位置)
示例:
#我要把文件的包含“chengyongxu.com”这个关键词的行前或行后加入一行,内容为“allow chengyongxu.cn”

行前加
sed -i ‘/allow chengyongxu.com/i\allow chengyongxu.cn’ the.conf.file
行前后
sed -i ‘/allow chengyongxu.com/a\allow chengyongxu.cn’ the.conf.file

6. 删除指定行的上一行
sed -i -e :a -e ‘$!N;s/.*\n\(.*ServerName abc.com\)/\1/;ta’ -e ‘P;D’ $file
删除指定字符串之间的内容
sed -i ‘/ServerName abc.com/,/\/VirtualHost/d’ $filehttp://www.linuxso.com/shell/17542.html

7. 也可在vi模式下,将文本中的内容替换,esc : %s/dog/sdog/ 这样可以把文件直接修改,然后保存即可
在vi模式下也可进行区间替换,如将第2至第7行之间的cat 换成scat,esc : 2,7 s/cat/scat/ 同样保存修改即可

8. sed查找行,如查找出vsftpd.conf中的非注释行
[root@server4 shell]# cat vsfptd.conf | sed ‘/#/d’
删除空格行和以#号开头的行,并写入文件vsftpd.config,用-e开关连接两个控制语句
[root@server4 shell]# cat vsfptd.conf | sed -e’/^#/d’ -e ‘/^$/d’ >vsftpd.config

9. sed删除匹配的行的后续多行
$sed ‘/Storage/,+2d’ thegeekstuff.txt
sed删除匹配行到尾行
$sed ‘/Website Design/,$d’ thegeekstuff.txt
sed删除匹配行到首行

今天的文章sed替换_sed修改文件某一行分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/48108.html

(0)
编程小号编程小号
上一篇 2023-09-04 11:11
下一篇 2023-09-04

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注