Letzten Tag löschen

finke

finke

Eroberer
Hi, ich bin ein absoluter Neuling mit bash Scripten, ah da ich bei einem Projekt in allen php Dateien die letzten, schließenden PHP-tags entfernen möchte, wenn anschließend kein Text mehr kommt. Und mir das per Hand ein paar Dateien zu viel sind hoffe ich hier eine angemessene Lösung zu finden.
Und wenn ich schon dabei bin, dachte ich mir, kann ich ja gleich mal alle Leerzeichen/Tabulatoren sowie alle leeren Zeilen löschen.
Bisher habe ich mir dafür
Code:
#!/bin/bash 

DATEN=`find -name '*.php' -type f`
for I in $DATEN ;
do
  sed 's![ \t]*$!!g' "$I" >"${I}_tmp"
  mv "${I}_tmp" "${I}"  
  sed '/^ *$/d' "$I" >"${I}_tmp"
  mv "${I}_tmp" "${I}"
  sed '/^[ ]*?>/,$d' "$I" >"${I}_tmp"
  mv "${I}_tmp" "${I}"
done
Ohne das bereits getestet zu haben, sehe ich 2 Probleme:
1. Lassen sich alle drei Sachen zu seinem Befehl zusammen fassen?
2. der letzte Befehl löscht bereits vom 1. Vorkommen an alles oder nicht?
Ich möchte aber nur das letzte gelöscht haben, und auch nur dann, wenn anschließend keine Druckbaren Zeichen mehr in der Datei auftauchen. Ich vermute das ist es auch der Weg, wie es wenn überhaupt gehen dürfte. Aber ich habe gerade keinen Schimmer wie ich das umsetze.

Schonmal danke im vor raus.
 

Ähnliche Themen

sed - Bitte um Unterstützung

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

SED letzte Zeile löschen

CSV Datei mit sed manipulieren/optimieren/ergänzen

Probleme mit sed: im Text eine Zeile in Großbuchstaben ?

Zurück
Oben