У меня есть файл 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
}
}
2 ответа
А как насчет простого 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 $0}' build.gradle
Замена на месте:
{ rm build.gradle && awk '/^android/{print;print "**HERE THE TEXT ADDED IN THE COMMAND SHOULD APPEAR**";next}{print $0}' > build.gradle ; } < build.gradle
Вызов sed -i
для редактирования на месте сделает то, что вы хотите:
sed -i 's/android {/android {\n**HERE THE TEXT ADDED IN THE COMMAND SHOULD APPEAR**/'
Есть несколько других вариантов вызова sed
, которые вы можете использовать, чтобы адаптировать его к вашим конкретным потребностям.
Похожие вопросы
Новые вопросы
bash
Этот тег предназначен для вопросов о сценариях, написанных для командной оболочки Bash. Сценарии оболочки с синтаксисом или другими ошибками, пожалуйста, проверьте их на https://shellcheck.net, прежде чем публиковать здесь. Вопросы об интерактивном использовании Bash, скорее всего, будут актуальны на Unix & Linux Stack Exchange или Super User, чем на Stack Overflow.