论坛首页 综合技术论坛

unix下面批量文件替换

浏览 3294 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-06-16   最后修改:2011-06-16
在hp unix下面进行批量文件替换,
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" 


大家有没有更好的方法进行文件批量替换吗?
   发表时间: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
0 请登录后投票
   发表时间:2011-07-26  
sed 可以执行替换,如:

sed -i -e 's/foo/bar/g' FILENAME
0 请登录后投票
   发表时间: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。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics