幸福飞过海 - sed 2013-07-08T02:00:00+00:00 Typecho https://fengqi.me/feed/atom/tag/sed/ <![CDATA[[记录]Linux查找和替换目录下所有文件中字符串]]> https://fengqi.me/unix/141.html 2013-07-08T02:00:00+00:00 2013-07-08T02:00:00+00:00 风起 http://fengqi.me 原文地址: Linux查找和替换目录下所有文件中字符串

Linux查找和替换目录下所有文件中字符串

单个文件中查找替换很简单,就不说了。文件夹下所有文件中字符串的查找替换就要记忆了,最近部署几十台linux服务器,记录下总结。

查找文件夹下包含字符串的文件
例:查找/usr/local目录下所有包含”rubyer.me”的文件。

grep -lr 'rubyer.me' /usr/local/*

vim替换单个文件中所有字符串方法
例:替换当前文件中所有old为new

:%s/old/new/g

%表示替换说有行,g表示替换一行中所有匹配点。

替换文件夹下包含字符串的文件
sed结合grep
例:要将目录/www下面所有文件中的old都修改成new,这样做:

sed -i "s/old/new/g" `grep old -rl /www`
]]>
<![CDATA[[记录]关于文件的bom头相关操作]]> https://fengqi.me/unix/116.html 2013-02-20T03:03:00+00:00 2013-02-20T03:03:00+00:00 风起 http://fengqi.me 参考文档: 用Shell如何清除一个目录下所有带BOM的文件中的BOM信息

去掉一个文件的bom头:

sed -i 's/^\xEF\xBB\xBF//g' a.txt

扫描当前目录有bom的文件:

grep -r -I -l $'^\xEF\xBB\xBF' ./

去掉当前目录下所有文件的bom:

grep -r -I -l $'^\xEF\xBB\xBF' ./ | xargs sed -i 's/^\xEF\xBB\xBF//g'

写到svn的hook脚本里即可, 不要问我怎么写哦, 百度吧.

]]>