Ich habe ein Bash-Skript, das ich mehrere Repos ziehen, um eine neue Instanz unseres Projektarbeitsablaufs zu erstellen, die eine Reihe von String-Ersetzungen basierend auf Informationen von der Befehlszeile ausgeführt ausführt .Bash-Skript sed Verwendung verursacht Probleme in ZSH
Ein Kollege verwendet ZSH und es traten Probleme auf, die durch die Verwendung von sed
im Skript verursacht wurden. Insbesondere scheint es, dass es die Regex nicht verarbeitet? Zum Beispiel ...
# Author Name.
if [[ $authorname ]]
then
sed -i "" "s/Author Name/$authorname/g" "$file"
fi
Resultierende in dem folgenden Fehler:
sed: can't read "s/Author Name/$authorname/g" : No such file or directory
Wir haben festgestellt, dass durch das Hinzufügen der -e
Flagge der Mehrheit der String Ersatz Fehler weggeht, aber er bekommt immer noch eine Anzahl der Fehler ‚nicht gefunden‘ ...
sed: can't read : No such file or directory
gibt es einen besseren Weg, um die Zeichenfolge Ersatz durchzuführen, die beide Bash und ZSH freundlich ist?
Dies wird fail on * BSD, obwohl. Es gibt keine wirklich portable Möglichkeit, '-i' plattformübergreifend zu verwenden. – tripleee
Außerdem ist "sed -i" "..." genau * äquivalent zu "sed -i ...". '-i" "', nach Zitatentfernung, ist das gleiche Wort wie '-i'. – chepner