之前在处理 hexo 文章路径时(《如何在Hexo中对文章md文件分类》)用过 sed
来插入内容,命令如下:
1 | sed -i "" "/title.*/ a\ |
那时以为如果插入多行文本亦可,不料使用时才知不然,会报错如下:
1 | sed: 1: "s#</head># i\ |
不知是否插入文本不能用 s
指定模式的分隔符,所以改变一下思路,用替换来实现。
但是尝试过把换行符换成 \n
,但是运行之后会被处理为 n
,用 \\\n
也不行。多番尝试及搜索,最后才发现需要用到 $
,\n
也需要改为 \\\n
,命令举例如下:
1 | sed -i '' $'s#</head>#<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>\\\n<script>\\\n (adsbygoogle = window.adsbygoogle || []).push({\\\n google_ad_client: "ca-pub-4684296714025694",\\\n enable_page_level_ads: true\\\n });\\\n</script>\\\n</head>#' userguide.html |
也就是,在引号前加上 $
,并且换行符使用 \\\n
即可。