在特定字符串之后将文本添加到文件之间

Add text to a file in between after a particular string

我有 build.gradle 个文件。我需要搜索一个字符串 android { ,如果找到的话;在下一行,它应该将一些内容回显为 echo "signing config={..SOME CODE.....} > build.gradle。这可能吗。使用上面的代码,我可以仅在开始或结束时从命令行回显代码。请帮帮我。

编辑:

示例...我的 gradle 文件是

buildscript {
CODE
}

dependencies {
    CODE
}
}
apply plugin: 'com.android.application`

android {

defaultConfig {
    CODE
}
}

此处将 android { 检测为字符串,应将以下内容附加在 android { 之后,如下所示

buildscript {
CODE
}

dependencies {
    CODE
}
}
apply plugin: 'com.android.application`

android {

 **HERE THE TEXT ADDED IN THE COMMAND SHOULD APPEAR**
defaultConfig {
    CODE
}
}

简单的 awk 怎么样?

awk '/^android/{print;print "**HERE THE TEXT ADDED IN THE COMMAND SHOULD APPEAR**";next}1' build.gradle

末尾的“1”可能有点含糊,更详细的版本:

awk '/^android/{print;print "**HERE THE TEXT ADDED IN THE COMMAND SHOULD APPEAR**";next}{print [=11=]}' build.gradle

就地更改:

{ rm build.gradle && awk '/^android/{print;print "**HERE THE TEXT ADDED IN THE COMMAND SHOULD APPEAR**";next}{print [=12=]}' > build.gradle ; } < build.gradle

sed -i 调用就地编辑将执行您想要的操作:

sed -i 's/android {/android {\n**HERE THE TEXT ADDED IN THE COMMAND SHOULD APPEAR**/'

sed 调用还有其他几种变体,您可以根据自己的具体需要对其进行定制。