当我使用变量时,sed不起作用

时间:2013-10-05 17:52:56

标签: bash sed

如果我不使用变量,这是有效的。我不明白为什么当我把变量放在里面时它不起作用。有人可以帮忙吗?变量包含文件的路径。

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

2 个答案:

答案 0 :(得分: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中更具便携性的等同物留给读者练习。

答案 1 :(得分:0)

oldnew的价值是多少?如果它们包含斜杠,那么它们会将sed模式扩展为无效的模式。您的尾随引号可能也没有帮助。