Tool Datei: Git Bash für Windows"sed" Insert Aufkantung
Problem: Der Versuch, den Text "\ connect zentrale" am Anfang jeder Datei in einem Verzeichnis einzufügen.
-Code:
for f in $DIR/*.sql; do
sed -i "1i \\\connect central" $f
done
Dies versucht inline zu bearbeiten und meinen Text einfügen, sondern drei Schrägstriche (wie ich überall gelesen habe) nicht die einzige Backslash erstellen, wie ich erwartet habe. Stattdessen erhalte ich:
Ich habe auch versucht, einige Varianten entlang der Linien von:
for f in $DIR/*.sql; do
sed -i -e "1i `\\\connect central`" $f
done
aber das wirft einen Fehler von sed: -e expression #1, char 3: expected \ after
a‘, c',
i'`
Und weiter zu erläutern, wird der erste Schrägstrich durch den sed 'I' Befehl erforderlich. Der Backslash, der folgt, muss als Backslash-Backslash maskiert werden, damit es von sed nicht speziell behandelt wird. Daher werden von sed drei Backslashes benötigt. – John1024
@ John1024 Das ist bereits in dem Befehl in der Frage inhärent. Er weiß, was der korrekte 'sed'-Befehl ist, er hat nur Schwierigkeiten, ihn aus der Shell zu übermitteln. – Barmar
Ja, konnte einfach nicht die richtige Syntax und offensichtlich, die Zitate warf mich für eine Schleife. Vielen Dank. – Daniel