Datei mit sed und regulären Ausdrücken innerhalb TAR-Datei Zeilen in Textdatei Ersetzen enthält Zeilen wie diese:<code>b.txt</code><code>b.tar</code> in einer TAR-Datei
dir1 => /dir1A
dir2 => /dir2A
ich einen prägnanten Ausdruck mit zum Ersetzen es in der TAR-Datei möchte stattdessen eine Version mit diesen Zeilen:
dir1 = /dir1B
dir2 = /dir2B
der Ausdruck kann sich darauf verlassen, dass eine Kopie b.txt
im selben Verzeichnis wie a.tar
existiert.
Meine sed
Fähigkeiten sind ein bisschen rostrott. Ich habe folgendes versucht, aber es funktioniert noch nicht. Was ist mein Fehler? Gibt es eine noch prägnantere Version? Diese
tar df a.tar b.txt
echo b.txt |
sed \#^dir1[ \t]*=>.*$#dir1 => /dir1B# |
sed \#^dir2[ \t]*=>.*$#dir2 => /dir2B# |
tar af a.tar -
so die 'tar' Datei wirklich nicht in Ihr Problem geben, da Sie habe es schon "geteert"? Die korrekte Syntax für eine Substitution in sed ist 'sed '\ # ... # ... #' file' (beachten Sie die führenden' s und einfachen Anführungszeichen). Sie können auch mehrere Ersetzungen in einem Aufruf kombinieren wie 'sed 's # # # # # # # # # # # # # # # # # # # (beachten Sie das Semikolon, das die Befehle trennt). Viel Glück; – shellter