PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Trim a TextFile line by line



mbieren
25-01-2007, 12:27
Hallo,

ich habe ein paar Cobol Textfiles deren Zeilen "Line by Line" auf 72 Zeichen begrenzt werden müssen. D.h lesen Zeile bei Zeile und abschneiden auf 72 Zeichen. Gibt es dafür ein Shell Commando ? Oder muß ich ein Script schreiben ?

Grüße

Michael

mbieren
25-01-2007, 13:04
def trimit (filename):
ret_value = 0
file = open (filename, "r")
lines = file.readlines ()
trimmed_lines = []
for line in lines:
line = line.rstrip ()
trimmed_lines.append (line)
file.close ()
write_file = open (filename, "w")
for trimmed_line in trimmed_lines:
write_file.write (trimmed_line + "\n")
write_file.close ()
return ret_value


Alles andere war mir zu umständlich

Grüße

Michael

Romanday
31-01-2007, 06:40
Alles andere war mir zu umständlich

Grüße

Michael

versuch mal:
awk '{print substr($0,0,72)}'

ThorstenS
31-01-2007, 09:48
Aber substr schneidet den Rest der Zeile ab, man müßte die längste Zeile herausfiltern und dann mehrere print -Anweisungen hintereinander packen:


for i in $(seq 1 80); do echo -n $i ;done | awk '{print substr($0,0,72)}{print substr($0,72,144)}

Romanday
31-01-2007, 11:08
Aber substr schneidet den Rest der Zeile ab, man müßte die längste Zeile herausfiltern und dann mehrere print -Anweisungen hintereinander packen:



Hat er das nicht so gemeint?

Hallo,
.D.h lesen Zeile bei Zeile und abschneiden auf 72 Zeichen.

Michael