使用sed替换多个文件中的字符串

时间:2017-08-31 12:23:02

标签: bash sed

我想使用bash命令在多个文件中查找并替换字符串。我正在使用我不熟悉的sed

我的变数:

$FILE = (/home/user/file1.txt, /home/user/file2.txt)
$REL = 5.0

我的代码:

for f in ${FILES[@]}; do sed -i "$f" "s/__ver__ =*/__ver__=$REL/g";

输出:

sed: -e expression #1, char 2: unknown command: `/'
sed: -e expression #1, char 2: unknown command: `/'

我的表情有什么问题?

1 个答案:

答案 0 :(得分:0)

1) filename 应指定为 sed 表达式的最后一个参数:

2)bash的for循环应以done关键字

结束
for f in ${FILES[@]}; do sed -i "s/__ver__ =*/__ver__=$REL/" "$f"; done

如果您的文件具有相似的命名格式,则可以避免for循环:

sed -i 's/__ver__ =*/__ver__=$REL/' /home/user/file[2].txt