Shell脚本替换字符串并将其写入文件

时间:2014-03-11 18:22:51

标签: shell unix

我有一个Result.csv文件,其中有三列。 First包含数值,Second和第三列包含服务器名称和数据库名称。 喜欢 : 132424 Apollo_54 P_ARD_65

所以代替P_ARD_65我需要用P_PBD_65替换字符串然后我需要在连接字符串中使用这个值来连接数据库: 我正在使用。

mv Result.csv Result.csv.$$
sed 's/P_ARD/P_PBD/g' Result.csv.$$
mv Result.csv.$$ Result.csv

但是它给出了错误信息。

我尝试过:

mv Result.csv Result.csv.$$
sed 's/P_ARD/P_PBD/g' Result.csv.$$
Result.csv.$$ >> Result.csv

但同样的错误。

请帮忙。

1 个答案:

答案 0 :(得分:0)

像这样:

$ sed -i "s|string|replacement|" file.csv

我认为你所缺少的是-i标志 - 在这种情况下,你不需要/g

对于多个文件:

find ./path/to/files/ -name "*.csv" -exec sed -i "s|search|replace|" {} +

如果您只需要执行一个文件,sed-i来说太旧了 - 您可以使用此vi / vim命令:

:%s/search/replace/g