我想使用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: `/'
我的表情有什么问题?
答案 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