Veröffentlicht 11. Juni 201015 j 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 201015 j von kale_1990
11. Juni 201015 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.