kale_1990 Geschrieben 11. Juni 2010 Geschrieben 11. Juni 2010 (bearbeitet) hallo, möchte gern aus datei1.ps alle zeilen unterhalb von "%%Page: 1 1" bis zum ersten vorkommen von "gsave" in die datei2.ps unterhalb von "%%Page: 1 1" kopieren. mit welchen unix-befehlen erledige ich das am besten? hatte schon die idee mit und grep -n "%%Page:" datei1.ps | sed 's/:.*//' | head -n 1 und grep -n "gsave" datei1.ps | sed 's/:.*//' | head -n 1 die zeilen zu ermitteln, komme jetz aber nicht weiter.... Bearbeitet 11. Juni 2010 von kale_1990 Zitieren
kale_1990 Geschrieben 11. Juni 2010 Autor Geschrieben 11. Juni 2010 und hier die lösung: datei1.ps -> quelldatei datei2.ps -> zieldatei tmp.ps -> temporaere datei bs=$(grep -n "%%Page:" datei1.ps | sed 's/:.*//' | head -n 1) es=$(grep -n "gsave" datei1.ps | sed 's/:.*//' | head -n 1) bt=$(grep -n "%%Page:" datei2.ps | sed 's/:.*//' | head -n 1) bs=$[$bs+1] es=$[$es-1] cat datei2.ps | head -n $bt > tmp.ps cat datei1.ps | sed -n ${bs},${es}p >> tmp.ps bt=$[$bt+1] cat datei2.ps | tail +$bt >> tmp.ps cp tmp.ps datei2.ps Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.