Massenbearbeitung von Dateien

kale1990

kale1990

Jungspund
Hallo zusammen,

habe gut 100 Cobol-Programme, welche eine Klausel enthalten, die mit unserem neuen Compiler nicht mehr komptibel ist und nun in all den Programmen auskommentiert werden muss.
Bräuchte nun ein Shell-Skript das mit folgender Regel vorgeht:
IF Zeile enthält "RECORD CONTAINS"
THEN Spalte7 der Zeile = "*"
Hänge "." an die vorrausgehende Zeile an

IF Zeile enthält "LABEL RECORD"
THEN Spalte7 der Zeile = "*"


wie kann ich das mit den Unix-Tools erledigen?
 
Das Ersetzen kannst Du mit awk erledigen:
Code:
 awk '/RECORD CONTAINS/{$7="*"}; {print}' cobol.code.datei
Dabei war diese Seite hilfreich.
Den Satzpunkt bekommst Du mit 'sed' hin, wurde hier, soweit ich weiss, auch schon beschrieben. Falls Du es mit der Suche nicht findest, meldet sich bestimmt bald jemand, der sich mit sed gut auskennt.
 
ok, hab schon ein kleines awk.


Code:
/RECORD CONTAINS/ { printf "%s%s%s\n", substr($1,0,6), "*", substr($1,8) }
/LABEL RECORD/ {printf "%s%s%s\n", substr($1,0,6), "*", substr($1,8) }
!/RECORD CONTAINS/ && !/LABEL RECORD/ {print $0}

wie kann ich nun mit awk in dem fall das er "record contains" findet in der vorhergehenden zeile einen punkt anhängen
 

Ähnliche Themen

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

dovecot und postfix Konfiguration Problem

Windows clients können nicht mehr auf lange laufendes System zugreifen

NagiosGrapher 1.7.1 funktioniert nicht

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Zurück
Oben