免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2256 | 回复: 4
打印 上一主题 下一主题

查找某个目录下(包括子目录)中的文件,将JSP中的UTF-8的替换成GBK。循环写法。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-11 22:41 |只看该作者 |倒序浏览

  1. #!/bin/bash
  2. wgm = "kissa"
  3. echo $wgm
  4. LIST="$(find . -name "*.jsp")"

  5. for i in "$LIST"; do
  6. fi ="$(ls $i)}"
  7. echo $fi
  8. sed 's/java/perl/g' $i>>$i.bak
  9. done
  10. ~

复制代码

sed 必须重定向,但这样重定向,又报错。
我想先生成BAK,在全部重新命名为.jsp
请大家指导下。

论坛徽章:
0
2 [报告]
发表于 2006-08-11 22:44 |只看该作者

这里面就有一个如何将变量和一般字符串连接起来的问题了,

$i和.bak,应该如何连接起来啊?

论坛徽章:
0
3 [报告]
发表于 2006-08-11 22:55 |只看该作者

再比如说,我有相同名字的一些.java文件也要执行此替换应该怎么写。

我想象的写法

  1. #!/bin/bash
  2. wgm = "kissa"
  3. echo $wgm
  4. LIST="$(find . -name "*.jsp")"

  5. for i in "$LIST"; do
  6. foo=${$i%%.*}.java

  7. sed 's/java/perl/g' $foo>>$foo.bak
  8. done

复制代码

这样肯定是不行的,但只是这个想法!

论坛徽章:
0
4 [报告]
发表于 2006-08-11 23:23 |只看该作者


  1. for fl in `grep -l "UTF-8" *.jsp *.java`; do
  2.    sed -e 's/UTF-8/GBK/g' $fl >> $fl.new
  3.    mv $fl $fl.bak
  4.    mv $fl.new $fl
  5. done

复制代码

[ 本帖最后由 vantien 于 2006-8-11 23:25 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2006-08-12 01:14 |只看该作者
用高点版本的sed吧,他有个-i的开关就可直接修改文件而不需重定向了

  1. /home/lee#sed --version
  2. GNU sed version 4.0.5
复制代码

  1. sed -i '...' urifle
复制代码

或用awk也可

  1. awk '{gsub(/patten/,"string");print>"filename"}' filename
复制代码

ed,vim也可

[ 本帖最后由 寂寞烈火 于 2006-8-12 01:16 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP