【问题标题】:SED script how to insert line at line number if the text doesn't exist already? [duplicate]如果文本不存在,SED 脚本如何在行号处插入行? [复制]
【发布时间】:2017-06-15 23:10:05
【问题描述】:

我有一个 sed 脚本,它确实在某一行插入了一个文本行。

这是我的 sed 脚本:

  • 20i - 行号
  • \ - 插入到新行的行号中有一些内容。
  • 从'./newpage/index'导入NewPage; - 插入到行中的文本行。

file - 文本所在的文件。

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

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

有什么办法吗?

提前致谢, AT

【问题讨论】:

    标签: shell ubuntu nginx sed linode


    【解决方案1】:

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

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

    它的工作原理是这样的:

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

    【讨论】:

      猜你喜欢
      • 2013-12-30
      • 2018-04-27
      • 2020-03-29
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 2020-11-03
      • 1970-01-01
      相关资源
      最近更新 更多