如何将日期值传递给sed?

时间:2016-05-16 23:26:52

标签: bash date unix sed

我想拥有

的价值
date + "%Y%m%d"

将被用作sed中的替换词

cat template.html | sed s/\\@\\@DATENUMBER\\@\\@/date +"%Y%m%d"/g

但这是不允许的。如何提取日期值并正确管道?

1 个答案:

答案 0 :(得分:3)

尝试:

sed "s/@@DATENUMBER@@/$(date +"%Y%m%d")/g" template.html

注意:

  1. 不需要cat,因为sed会将文件名作为参数。

  2. 如果您要替换的文本看起来像@@DATENUMBER@@,则不需要所有这些反斜杠:@既不是shell活动字符也不是sed-active字符并且不需要逃脱。

  3. 如果要执行date命令,则必须使用命令替换$(...)

  4. 整个sed s命令应该在引号中,以便shell不会对其进行分词。