shell 文件内容替换 sed用法
调用sed命令有两种形式: sed [options] ‘command‘ file(s) sed [options] -f scriptfile file(s) ? 删除:d命令? $ sed ‘2,$d‘ example-----删除example文件的第二行到末尾所有行。 $ sed ‘$d‘ example-----删除example文件的最后一行。 $ sed ‘/test/‘d?example-----删除example文件所有包含test的行。
?
?
sed ‘s/要被替换的字符串/新的字符串/g‘
$ sed ‘s/test/mytest/g‘ example-----在整行范围内把test替换为mytest。
如果没有g标记,则只有每行第一个匹配的test被替换成mytest。
#!/bin/bash
sed -i ‘s/172.30.0.122:1521:iboxpay/要替换的IP:端口:实例/g‘ /home/wdk/proxool.xml
sed -i ‘s/"tst"/要替换的数据库用户名/g‘ /home/wdk/proxool.xml
sed -i ‘s/"ok"/要替换的数据库密码/g‘ /home/wdk/proxool.xml
cat /home/wdk/proxool.xml
?
sed命令?
sed -i ‘s/被替换的内容/要替换成的内容/‘ file ???????-i?直接修改并保存
?
# nl /etc/passwd | sed ‘2,5d‘ ?删除2~5行
# nl /etc/passwd | sed ‘3,$d‘ ?删除3~最后一行 ??????$代表最后一行
# nl /etc/passwd | sed ‘2a drink tea?‘ ??在第二行之后加入“drink tea?”
# nl /etc/passwd | sed ‘2i drink tea?‘ ???在第二行之前加入”drink tea?“
# nl /
etc/passwd | sed ‘2a drink tea? ??在第二行之后加入“drink tea?”并以“”结束,回车后
> drink beer ? ???在“drink tea?”后加入一行 以“ ”结束
> shirt!‘
?
# ?nl /etc/passwd | sed ‘2,5c NO 2-5 NUMBER‘ ????将第2~5行的内容替换为“NO 2-5 NUMBER”
?
$ sed -n ‘s/^test/mytest/p‘ example
-----(-n)
选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。
$ sed ‘s/^192.168.0.1/&localhost/‘ example
-----&
符号表示替换换字符串中被找到的部份。所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。
$ sed -n ‘s//(love/)able//1rs/p‘ example -----love被标记为1,所有loveable会被替换成lovers,而且替换的行会被打印出来。 $ sed ‘s#10#100#g‘ example -----不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。表示把所有10替换成100。 选定行的范围:逗号? -----所有在模板test和check所确定的范围内的行都被打印。 $ sed -n ‘5,/^test/p‘ example-----打印从第五行开始到第一个包含以test开始的行之间的所有行。 多点编辑:e命令? $ sed --expression=‘s/test/check/‘ --expression=‘/love/d‘ example -----一个比-e更好的命令是--expression。它能给sed表达式赋值。 从文件读入:r命令? -----file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。 写入文件:w命令? -----在example中所有包含test的行都被写入file里。
插入:i命令? new line -------------------------‘ example 如果test被匹配,则把反斜杠后面的文本插入到匹配行的前面。 下一个:n命令? 变形:y命令? 退出:q命令? 保持和获取:h命令和G命令? 保持和互换:h命令和x命令? 7. 脚本
?sed /^$/d filename ???可以删除文件中的空行。 sed /^[[:space:]]*$/d filename ???可以删除内容为多个空格/tab组成的行。 ? http://blog.sina.com.cn/s/blog_7211cb9201019hgd.html 再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |