Bash Suchdatei nach Pattern, Ersetze Pattern durch Code mit Git Branch Name
Ich habe eine README.md-Datei, in der ich eine Textkennung ersetzen möchte{{CODESHIP_CODE}}
mit einer Codezeile - speziell einem Code-Snippet für das Build-Status-Image, das den Namen des Git-Zweigs enthält.
Ich denke, es würde ungefähr so aussehen ...
Legen Sie den aktuellen Zweiggit rev-parse --abbrev-ref HEAD
in Bash-Variable Platzieren Sie das Muster / die Zeichenfolge, nach dem / der in einer Variablen gesucht werden soll. Dieses Muster / diese Zeichenfolge wird nur als Bezeichner verwendet, um schnell zu ermitteln, wo in der Datei README.md der Build-Status-Image-Code ausgegeben werden soll.Verwendensed
(möglicherweisegrep
), um die Datei README.md nach dem angegebenen @ zu durchsuche{{CODESHIP_CODE}}
pattern / string und ersetzen Sie es durch den Build-Image-StatuscodeDer Code, den ich geschrieben habe, sieht folgendermaßen aus:
#!/bin/bash
# Get the current branch
function git_branch {
git rev-parse --abbrev-ref HEAD
}
# Set variable to current branch
branch=$(git_branch)
# Define the pattern to search for
# This pattern/string gets replaced with the build status image code
id="{{CODESHIP_CODE}}"
# Create build status image code
# Inject the $branch variable into the correct location
codeship_build_status="[ ![Codeship Status for ExampleGitHubUser/ExampleRepo](https://codeship.com/projects/a99d9999-9b9f-9999-99aa-999a9a9a9999/status?branch=$branch)](https://codeship.com/projects/999999)"
# Find the pattern to replace
# Then replace it with the build status image
sed -i -e "s/{{CODESHIP_CODE}}/$codeship_build_status/g" README.md
Das Problem ist, dass ich immer wieder den folgenden Fehler erhalte:
sed: 1: "s/{{CODESHIP_CODE}}/[ ! ...": bad flag in substitute command: 'a'
Ich bin nicht sicher, wie ich dieses Problem beheben soll, damit das Skript ordnungsgemäß funktioniert. Jede Hilfe wäre sehr dankbar.