Shell SED脚本如何在文本不存在时在行号处插入行';你不存在吗?

Shell SED脚本如何在文本不存在时在行号处插入行';你不存在吗?,shell,ubuntu,nginx,sed,linode,Shell,Ubuntu,Nginx,Sed,Linode,我有一个sed脚本,它在某一行插入文本行 以下是我的sed脚本: 20i-行号 \-插入到新行中,行号中包含某些内容 从“./NewPage/index”导入新页面;-插入到行中的文本行 文件-文本所在的文件 sed -i "20i \ import NewPage from './newpage/index'; " file 我试图实现的是:能够检查文档->中是否存在关键字“NewPage”,而不插入sed行 有办法吗 提前感谢,, 在中,您可以将grep和命令以及bash中的|组合使用

我有一个sed脚本,它在某一行插入文本行

以下是我的sed脚本:

  • 20i
    -行号
  • \
    -插入到新行中,行号中包含某些内容
  • 从“./NewPage/index”导入新页面;-插入到行中的文本行
文件-文本所在的文件

sed -i "20i \ import NewPage from './newpage/index'; " file
我试图实现的是:能够检查文档->中是否存在关键字“NewPage”,而不插入sed行

有办法吗

提前感谢,,

中,您可以将grep和命令以及bash中的
|
组合使用,如下所示:

grep -c NewPage yourfile || sed -i "20i \ import NewPage from './newpage/index'; " yourfile
它的工作原理如下:

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