zhyiwww
用平实的笔,记录编程路上的点点滴滴………
posts - 536,comments - 394,trackbacks - 0
sed是实现对流的编辑。通常,我们使用sed可以实现内容的编辑后然后保存成另外的一个文件,如果正确的话,才写入到源文件。但是某些时候,我们需要直接修改文件,因为,保存文件到一个文件,然后再覆盖原文件的办法显得很麻烦。
其实很简单,只需要一个 -i 参数就可以了。
比如,我想替换文件中的 properties 为 property ,可以使用

sed  's/properties/property/g'  build.xml
这种方式,其实并没有修改build.xml文件的内容。如果想保存修改,通常的做法就需要重定向到另外的一个文件
sed  's/properties/property/g'  build.xml > build.xml.tmp
这样,build.xml.tmp文件就是修改后的文件.
如果无误,那么就可以用
mv build.xml.tmp build.xml
覆盖原文件。
如果想直接修改源文件,而没有这样的过程,可以用下面的命令

sed  -i 's/properties/property/g'  build.xml

这样,就直接修改了build.xml文件。




|----------------------------------------------------------------------------------------|
                           版权声明  版权所有 @zhyiwww
            引用请注明来源 http://www.blogjava.net/zhyiwww   
|----------------------------------------------------------------------------------------|
posted on 2008-11-24 15:42 zhyiwww 阅读(67654) 评论(5)  编辑  收藏 所属分类: linux

FeedBack:
# re: sed实现直接修改文件内容
2009-11-06 11:30 | lyl_98
在我的机器上,下面的命令似乎有些不好使,
$sed -i 's/tatic/static/' a.txt
sed: 1: "a.txt": command a expects \ followed by text

改成这样,就OK了,我的机器是Darwin Kernel Version 8.11.0
$sed -ig 's/tatic/static/' a.txt  回复  更多评论
  
# re: sed实现直接修改文件内容
2011-09-08 17:08 | 游客
非常实用,十分感谢!  回复  更多评论
  
# re: sed实现直接修改文件内容
2012-07-09 15:18 | 芥末
我想只替换其中一个字符,而不是将所有遇到的字符都替换,要怎么办呢?  回复  更多评论
  
# re: sed实现直接修改文件内容[未登录]
2014-09-17 15:56 | 123
sed -i 's////g'@lyl_98
  回复  更多评论
  
# re: sed实现直接修改文件内容
2014-10-05 19:36 | qwe
quota qq2|awk '{pring $4}'
想把数值0 随意改动 后面怎么用sed实现呢?我找不到相关文件  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: