Zeile verschieben, die mit einem Muster von einer Datei in eine andere passen

Ich möchte Linien, die mit einem bestimmten Muster übereinstimmen, von @ verschiebe file1 zu file2. Analog zur Bedienungausschneiden und von einer Datei in eine andere einfügen in Windows

Beispie

Nehmen wir an, ich möchte alle Zeilen ausschneiden, die @ enthaltebar von file1 und in neu erstelltes @ einfüg file2

Eingang

file1

bla foo bla
bla bar bla
bla aaa bla
bla bar bla
bla foo bla

Gewünschte Ausgabe nach der Verarbeitung:

file1

bla foo bla
bla aaa bla
bla foo bla

file2

bla bar bla
bla bar bla

Was ich versucht habe

grep erstellt gewünschtes file2 aber ändert @ nic file1

grep 'bar' file1 > file2

sed -i modifiziert gewünschtes file1 erstellt aber kein file2

sed -i '/bar/d' file1

Wenn ich beide Befehle nacheinander ausführe, erhalte ich das gewünschte Ergebnis. Aber hier suche ich einsingle line command aus Neugier und um ein Drehbuch prägnanter zu gestalten.

Ihre Hilfe wäre dankbar.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage