Chinaunix
标题:
查找某个目录下(包括子目录)中的文件,将JSP中的UTF-8的替换成GBK。循环写法。
[打印本页]
作者:
wgm993114
时间:
2006-08-11 22:41
标题:
查找某个目录下(包括子目录)中的文件,将JSP中的UTF-8的替换成GBK。循环写法。
#!/bin/bash
wgm = "kissa"
echo $wgm
LIST="$(find . -name "*.jsp")"
for i in "$LIST"; do
fi ="$(ls $i)}"
echo $fi
sed 's/java/perl/g' $i>>$i.bak
done
~
复制代码
sed 必须重定向,但这样重定向,又报错。
我想先生成BAK,在全部重新命名为.jsp
请大家指导下。
作者:
wgm993114
时间:
2006-08-11 22:44
标题:
这里面就有一个如何将变量和一般字符串连接起来的问题了,
$i和.bak,应该如何连接起来啊?
作者:
wgm993114
时间:
2006-08-11 22:55
标题:
再比如说,我有相同名字的一些.java文件也要执行此替换应该怎么写。
我想象的写法
#!/bin/bash
wgm = "kissa"
echo $wgm
LIST="$(find . -name "*.jsp")"
for i in "$LIST"; do
foo=${$i%%.*}.java
sed 's/java/perl/g' $foo>>$foo.bak
done
复制代码
这样肯定是不行的,但只是这个想法!
作者:
vantien
时间:
2006-08-11 23:23
for fl in `grep -l "UTF-8" *.jsp *.java`; do
sed -e 's/UTF-8/GBK/g' $fl >> $fl.new
mv $fl $fl.bak
mv $fl.new $fl
done
复制代码
[
本帖最后由 vantien 于 2006-8-11 23:25 编辑
]
作者:
寂寞烈火
时间:
2006-08-12 01:14
用高点版本的sed吧,他有个-i的开关就可直接修改文件而不需重定向了
像
/home/lee#sed --version
GNU sed version 4.0.5
复制代码
sed -i '...' urifle
复制代码
或用awk也可
awk '{gsub(/patten/,"string");print>"filename"}' filename
复制代码
ed,vim也可
[
本帖最后由 寂寞烈火 于 2006-8-12 01:16 编辑
]
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2