如果文本不存在,SED 脚本如何在行号处插入行?

SED script how to insert line at line number if the text doesn't exist already?

我有一个 sed 脚本,可以在特定行插入文本行。

这是我的 sed 脚本:

file - 文本所在的文件。

sed -i "20i \ import NewPage from './newpage/index'; " file

我想要实现的是:检查文档中是否存在关键字 "NewPage" 的能力 -> 不插入 sed 行。

有什么办法吗?

提前致谢, 在

您可以像这样在 bash 中使用 grep 和您的命令以及 || 的组合:

grep -c NewPage yourfile || sed -i "20i \ import NewPage from './newpage/index'; " yourfile

它是这样工作的:

  • 如果第一个命令不成功(找到单词),则执行 || 之后的第二个命令
  • 如果第一个命令成功,则跳过第二个。