代码如下:
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编程,请教问题何在?
想查找替换一个文件夹下的所有文件,写了一个shell脚本,出现的问题
-
- 帖子: 6
- 注册时间: 2008-12-10 23:30
-
- 帖子: 92
- 注册时间: 2008-05-25 22:58
Re: 想查找替换一个文件夹下的所有文件,写了一个shell脚本,出现的问题
我绝对新手,
不知道是不是你要的效果#!/bin/bash
read -p "请输入被替换的字符串" sPreg
read -p "请输入要替换成的字符串" sVar
ls ./* | grep "$sPreg" | sed "s/$sPreg/$sVar/g"
-
- 帖子: 92
- 注册时间: 2008-05-25 22:58
Re: 想查找替换一个文件夹下的所有文件,写了一个shell脚本,出现的问题
哦。好像吧你的意思理解错了,你的意思是在文件夹下找到匹配行的文件,并把找到的文件的匹配行修改成你想要的是吧。
还有脚本不要和要处理文件放在一起,否则可能把脚本都改了。
你的引号用错了,grep -rl “$sPreg” ./* --color=never | xargs sed -i “s/$sPreg/$sVar/g“
还有脚本不要和要处理文件放在一起,否则可能把脚本都改了。
-
- 帖子: 6
- 注册时间: 2008-12-10 23:30