为了账号安全,请及时绑定邮箱和手机立即绑定

如何将包含斜杠的变量传递给sed

如何将包含斜杠的变量传递给sed

墨色风雨 2019-10-19 14:07:35
如何将包含斜杠的变量作为模式传递给sed?例如,如果我有以下变量:var="/Users/Documents/name/file"我想这样传递sed:sed "s/$var/replace/g" "$file"但是我得到了错误。我该如何解决这个问题?
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

使用替代的正则表达式定界符,因为sed您可以使用任何定界符(包括控制字符):


sed "s~$var~replace~g" $file


查看完整回答
反对 回复 2019-10-19
?
jeck猫

TA贡献1909条经验 获得超7个赞

一个纯bash的答案:使用参数扩展来反斜杠转义变量中的任何斜杠:


var="/Users/Documents/name/file"

sed "s/${var//\//\\/}/replace/g" $file


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 592 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信