1

如果我不使用变量,这将有效。我不明白为什么当我将变量放入其中时它不起作用。任何人都可以帮忙吗?变量包含文件的路径。

sed s/$old/$new/ Current_series_list.txt"
4

2 回答 2

3

路径可能包含正斜杠。使用不同的字符来分隔命令参数,例如#

sed "s#$old#$new#" Current_series_list.txt

当然,由于正则表达式元字符,这仍然很脆弱。考虑改用以下内容:

ruby -e '$stdin.each_line { |l| puts l.sub(ARGV[0], ARGV[1]) }' \
     "$old" "$new" < Current_series_list.txt

Perl 中更便携的等价物留给读者练习。

于 2013-10-05T17:59:52.010 回答
0

old和的值是new多少?如果它们包含斜杠,那么它们会将 sed 模式扩展为无效的内容。您的尾随引号可能也无济于事。

于 2013-10-05T18:00:12.450 回答