浏览 3294 次
锁定老帖子 主题:unix下面批量文件替换
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-16
最后修改:2011-06-16
grep命令不能grep一个文件夹,不支持-r命令 使用sed命令只能输出在控制台 不能进行替换 只能使用perl命令, grep -l 136.64.45.111 /home/billing1/backpro/NMSInterface/shell/start* | xargs perl -pi -e "s/136.64.45.111/10.1.51.30/g" 大家有没有更好的方法进行文件批量替换吗? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-06-16
ls -1 /home/billing1/backpro/NMSInterface/shell/start* | awk '{print "sed 's/136.64.45.111/10.1.51.30//g' "$1" >/tmp/test2/"$1}' > sed.sh
|
|
返回顶楼 | |
发表时间:2011-07-26
sed 可以执行替换,如:
sed -i -e 's/foo/bar/g' FILENAME |
|
返回顶楼 | |
发表时间:2011-07-26
另外,本人写了一个批量替换的工具
apt源: deb http://deb.bodz.net/ unstable/ sudo apt-get install repl repl --help 可以执行纯文本替换、正则替换、外部命令替换,默认为纯文本替换,如: repl -d -r -- foo bar . 从当前目录开始(递归的)把 foo 替换为 bar,同时显示替换的内容(diff)。 正则替换(Perl 正则): repl -p -r -- '[0-9]+' 1997 . 从当前目录起,把所有数字替换为1997。 |
|
返回顶楼 | |