【发布时间】:2016-07-26 20:13:03
【问题描述】:
我有一个 bash shell 脚本,如下所示:
#!/bin/bash
#arg1: pattern to be found
#arg2: pattern to be replaced
#arg3: filename pattern
echo replace $1 by $2 for all $3 files
for i in `find . -type f -name "$3"`
do
sed 's/$1/$2/g' $i
done
我使用这个脚本(比如说,称为 SUBS)作为:
./SUBS bbb ddd aa
文件aa所在的位置:
aaaa
bbbb
cccc
但是,虽然我希望看到 bbbb 被替换为 dddb,但它显示了相同的内容,即 bbbb。 任何线索这里有什么问题? 另外,我想在替换后修改相同的文件。我怎样才能做到这一点? 这个 Qs 与 sed substitution with bash variables 有点相似,但在我的 Qs 中,我使用了一个模式来查找和替换作为 shell 变量的参数。
【问题讨论】: