
Ich habe zwei Skriptdateien, sagen wir file1
und file2
. Ich möchte den Inhalt von nehmen file1
, das Zeichen a
in A
ändern file1
und die Ausgabe an anhängen, file2
ohne den Inhalt von zu ändern file1
. Ich versuche es mit:
sed -i ‘s/a/A/g’ file1 >> file2
aber dies ändert nur a
das A
in file1
.
Antwort1
Entfernen Sie einfach die -i
Flagge:
sed 's/a/A/g' file1 >> file2
Das -i
Flag wird verwendet, um die angegebene Datei an Ort und Stelle zu bearbeiten, also tut es genau das file1
. Vonman sed
:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
file2
Der Grund, warum bei Verwendung nichts angehängt wird, -i
ist, dass zum Anhängen an die angegebene Datei >>
verwendet wird . Da jedoch aufgrund von an Ort und Stelle bearbeitet wird , wird keine Ausgabe generiert, sodass nichts angehängt wird .stdout
file1
-i
file2