分页: 1 / 1

想查找替换一个文件夹下的所有文件,写了一个shell脚本,出现的问题

发表于 : 2009-02-11 11:23
zezhou
代码如下:

1 #!/bin/bash
2
3 #传入参数
4 read -p "请输入被替换的字符串" sPreg
5 read -p "请输入要替换成的字符串" sVar
6
7 #正则匹配
8
9 grep -rl '$sPreg' ./* --color=never | xargs sed -i 's/$sPreg/$sVar/g'


运行后不成功,但我单独在bash下运行 grep -rl '$sPreg' ./* --color=never | xargs sed -i 's/$sPreg/$sVar/g'这一句是成功的。
我刚学shell编程,请教问题何在?

Re: 想查找替换一个文件夹下的所有文件,写了一个shell脚本,出现的问题

发表于 : 2009-02-11 12:36
gududehuo
我绝对新手,
#!/bin/bash
read -p "请输入被替换的字符串" sPreg
read -p "请输入要替换成的字符串" sVar
ls ./* | grep "$sPreg" | sed "s/$sPreg/$sVar/g"
不知道是不是你要的效果

Re: 想查找替换一个文件夹下的所有文件,写了一个shell脚本,出现的问题

发表于 : 2009-02-11 13:17
gududehuo
哦。好像吧你的意思理解错了,你的意思是在文件夹下找到匹配行的文件,并把找到的文件的匹配行修改成你想要的是吧。
grep -rl “$sPreg” ./* --color=never | xargs sed -i “s/$sPreg/$sVar/g“
你的引号用错了,
还有脚本不要和要处理文件放在一起,否则可能把脚本都改了。

Re: 想查找替换一个文件夹下的所有文件,写了一个shell脚本,出现的问题

发表于 : 2009-02-11 19:05
zezhou
谢谢,问题解决~