Is ganz einfach -- totaaaaal straightforward.jengelh schrieb:Wie wär's mit ... ?
Code:perl -e '$_=join"",<>;s/\n\t\t//gs;s/\t//gs;print' <test
Code:
$_=join"",<>
Code:
s/.../
Code:
print
Is ganz einfach -- totaaaaal straightforward.jengelh schrieb:Wie wär's mit ... ?
Code:perl -e '$_=join"",<>;s/\n\t\t//gs;s/\t//gs;print' <test
$_=join"",<>
s/.../
print
sed -ne '/^\t\t/{H;x;s/\n\t\t/ /;x;D}; x; 2,$p'
./convert.py text1.txt text2.txt
Traceback (most recent call last):
File "./convert.py", line 4, in ?
f=file("in","r")
IOError: [Errno 2] No such file or directory: 'in'
perl -e '$_=join"",<>;s/\n\t\t//gs;s/\t//gs;print' <test
Died at ./convert.pl line 5.
f=file("in","r")
f=file("/home/user/mydatei","r")
open (F, "in") or die;
open (F, "/home/user/mydatei") or die;
In der echo-Ausgabe von oben werden durchaus die ersten beiden Zeilen zusammengefasst. Ich schätze, mir ist nicht klar, was du meinst (und jengelh vermutlich auch nicht, wenn wir beide das gleiche machen).rethus schrieb:Ist der Text in einer Zeole mehrspaltig, werden ab der 2. UZeile alle restlichen Zeilen zusammengefasst... jedoch ist zwischen der ersten und 2. Zeile immernoch ein Umbruch.
Bezeichner: Beschreibung-1.Zeile....balaBlaa \n
\t\t Beschreibung -2.Zeile....blah....bla...\n
\t\t Beschreibung -3.Zeile....blah....bla...\n
Wenn du damit die sed-Variante meinst, sie hat immerhin den Vorteil, dass sie nicht erstmal die ganze Datei einliest und dann per regexp darauf losgeht, sondern zeilenweise arbeitet. Wenn du das mit Perl machen willst, wird die Vorgehensweise vermutlich ganz ähnlich sein, aber nicht so kurz.jengelh schrieb:Ich versteh' immer nicht, warum einige Leute soviele Umwege machen...
ada@barnabas:~> echo -e "Bezeichner: Beschreibung-1.Zeile....balaBlaa \n\t\t Beschreibung -2.Zeile....blah....bla...\n\t\t Beschreibung -3.Zeile....blah....bla...\n " | sed -ne '/^\t\t/{H;x;s/\n\t\t/ /;x;D}; x; 2,$p'
Bezeichner: Beschreibung-1.Zeile....balaBlaa Beschreibung -2.Zeile....blah....bla... Beschreibung -3.Zeile....blah....bla...
Natürlich, denn eine Zeile ohne Umbruch ist kein Zeile.rethus schrieb:[...] sehe ich das nach der ersten Beschreibungszeile ein Umbruch ist.
sed -ne '/^Def/{N;s/\n/ /};/^\t\t/{H;x;s/\n//;x;D}; x; 2,${s/\t\+/ /g;p}'
#!/usr/bin/env python
# -*- coding: utf8 -*-
from sys import argv, exit
from os import getcwd
if len(argv) < 3:
print '\nBitte geben Sie die Namen der Ein- und Ausgabedateien in dem Format "convert.py text1.txt text2.txt" ein; Abbruch.\n'
exit(1)
f=file(getcwd()+"/"+argv[1],"r")
a=f.readlines()
f.close()
c=""
for i in a:
c=c+i
c=c.replace("\n\t\t","")
c=c.replace("\t","hallo")
f=file(getcwd()+"/"+argv[2],"w")
f.write(c)
f.close()
:?: Bei dieser Datei ist nach deinen Vorgaben nicht einmal mir klar, welche Zeilen du aneinanderhängen möchtest. Wie soll es da meinem Skript klar sein?rethus schrieb:versucht es doch mal mit meiner Textdatei
Ich habe mir das noch einmal angesehen. In dem sed-Befehl war folgender Fehler: wenn die letzte Zeile eingerückt war, dann wurde die letzte Ausgabe verschluckt. Aber das war ja eigentlich nicht das, was du beklagtest. Wenn ich diesen Fehler korrigiere und außerdem dafür sorge, dass jetzt alle Tabulatoren entfernt werden, dann lande ich beirethus schrieb:Ist der Text in einer Zeole mehrspaltig, werden ab der 2. UZeile alle restlichen Zeilen zusammengefasst... jedoch ist zwischen der ersten und 2. Zeile immernoch ein Umbruch.
[...]
Mich würde jetzt mal interessieren, wo der unterschied in der Verarbeitung mit python und dem sed-Befehl liegt...
sed -ne '/^\t\t/{H;x;s/\n\t\t//;x;$ !D}; x; 2,${s/\t//g;p}'
FILLAG
Attribut KLPO_FilialeLager
Definiert durch Basisattribut : FilialeLager
Definition Basisattribut : Filialnummer der Lagerstätte. Bezeichnet zusammen mit dem Unternehmenskennzeichen (UKZLAG) eindeutig das Lager. Standardbestandteil des Primärschlüssels der meisten LVS-Tabellen.
Einschränkung Wertebereich : Wird in den LVS-Programmen durch eine Parameterdatei beim Start der Server-Programme eingestellt.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from sys import argv, exit
from os import getcwd
if len(argv) < 3:
print '\nBitte geben Sie die Namen der Ein- und Ausgabedateien in dem Format "convert.py text1.txt text2.txt" ein; Abbruch.\n'
exit(1)
f = file(getcwd() + "/" + argv[1], "r")
a = f.readlines()
f.close()
c=""
for i in a:
if i.find("Einschränkung Wertebereich") != -1:
i += "</td></tr></table><table><tr><td>\n"
c += i
c = c.replace("\n\t\t", "")
c = c.replace("\t", "")
f = file(getcwd() + "/" + argv[2], "w")
f.write(c)
f.close()