sed命令+正则表达式批量替换

macOS grep + sed 批量替换多个文件的内容 - Dvel’s Blog

grep -lr --null 'title'*| xargs -0 sed -i -r 's/title: (.*)/title: \"\1\"/g'

mac上的sed命令有坑,和linux不完全一样,需要注意

sed: 1: "1.txt": invalid command code .错误

解决方案:-i后面加一个备份文件后缀名。

sed -i "_bak" 's/string_old/string_new/g' grep -rl 'string_old' ./

extra characters after \ at the end of a command

mac中的回车等不一样,需要文本上直接回车,例如第一行的\后面需要一个物理回车。

sed -i ".bak" '1a\
tags: review 
' 

或者替换成linux的sed命令。

brew install gnu-sed
alias sed=gsed

反向链接: