如何用sed将两个字符串替换为文字?

How to replace two strings as literals with sed?

我想使用 sed 将 content: [], 替换为 content: ['./src/**/*.{js,jsx,ts,tsx}'],,我正在尝试此命令:

echo content: [], | sed -e s/content: \[\]/content: \['\.\/src\/\*\*\/\*\.\{js,jsx,ts,tsx}']/

但是我得到这个错误:

zsh: no matches found: [],
sed: 1: "s/content:
": unterminated substitute pattern

理想情况下,我想将 sed 命令中的两侧视为文字字符串,但显然无论如何,它将不同的字符视为正则表达式部分。

您需要将 echosed 命令用引号 ("") 括起来,这样 ZSH 就不会展开它们:

echo 'content: [],' | sed -e "s/content: \[\]/content: \['\.\/src\/\*\*\/\*\.\{js,jsx,ts,tsx}']/"
content: ['./src/**/*.{js,jsx,ts,tsx}'],