und*_*ack 2 regex perl escaping slash
end_date=$(date +"%m/%d/%Y")
/usr/bin/perl -pi -e "s/_end_date_/${end_date}/g" filename
Run Code Online (Sandbox Code Playgroud)
我想用当前日期替换字符串'_end_date_'.由于当前日期中有斜杠(是的,我想要斜杠),我需要逃避它们.我怎样才能做到这一点?
我尝试了几种方法,比如使用sed和Perl本身用"/"替换斜杠,但它没有用.最后我使用'cut'来打破3个部分的日期并逃脱斜线,但这个解决方案看起来不太好.有更好的解决方案吗?
Pet*_*ans 16
在Perl中,您可以选择使用哪个字符来分隔正则表达式的各个部分.以下代码可以正常工作.
end_date = $(date +"%m/%d/%Y")
/usr/bin/perl -pi -e "s#_end_date_#${end_date}#g" filename
Run Code Online (Sandbox Code Playgroud)
这是为了避免"倾斜牙签"综合症与/交替.