[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Text editieren mehrmals



Orlando Rose <O.Rose@bebitz.de> writes:

> Am Mittwoch, 23. Februar 2005 11:20 schrieb Malte Spiess:
>> Orlando Rose <O.Rose@bebitz.de> writes:
>> > Hi,
>> >
>> > wie kann ich in einem Textfile die 1.Zeile editieren und diesen Weg der
>> > Änderung auf alle anderen Zeile übertragen?
>> > Bitte was grafisches :-(, mit sed und awk setze ich später auseinander.
>> >
>> > Oder gibt es ein Proggi, das mir aus der Klickerei ein script erstellen
>> > kann?
>> >
>> >
>> > Es geht um die Umformatierung einer ASCII-Datei mit vom Aufbau her
>> > gleichen Zeilen. Am Ende soll eine neue Datei entstehen.
>> >
>> > z.B.
>> >
>> >
>> > 123456789000123456789
>> >
>> > zu
>> >
>> > ABC123000456789XXX
>> >
>> >
>> > hat jemand einen kleinen Tip.
>>
>> Unter Emacs oder Vi (oder anderen) könntest Du ein Makro definieren
>> (geht wirklich ganz einfach).
>> Da gibst Du "Makro Start" ein, dann die Bearbeitung für die erste
>> Zeile - dann "Makro Ende". Dann nur noch das Makro 100x ausführen - fertig.
>>
>> Genaueres auf Anfrage (ich kann's Dir aber nur bei Emacs sagen).
>>
>> Gruß
>>         Malte
> Hi,
>
> kann ich das auch aus einen Scripts steuern?
>
> Also so: script erstelle "dateineu" für den Inhalt füge aus "dateialt"
> 1.2.3.Stelle 1.Zeile ein, dann schreibe "XYZ" rein, füge
> 9.6.7.8.Stelle auf "dateialt" ein. wiederhole sooft bis alle Zeile aus
> "dateialt" abgearbeitet sind
>
> ist das möglich? wenn ja wie?

Hallo, ja, das ist auch möglich, da Emacs ja Lisp interpretieren kann,
auch eine Skript-Sprache. Diese ist aber leider nicht so leicht zu
erlernen (IMHO), deshalb nur für Emacs-Fans zu empfehlen.
Auch ohne Skript müsste es innerhalb von Emacs möglich sein, ich weiß
nur nicht, wie man ein Makro ausführt, bis man am Dateiende ankommt.

Wenn Du wirklich sehr viele Dateien so bearbeiten musst, dann wäre es
vielleicht doch geschickter, ein Skript in Perl oder so zu schreiben.
Ein Bash-Skript könnte ich Dir sogar liefern:
,----
| for bla in `cat datei`
| do
|    echo ${bla:0:3}XYZ${bla:8:1}${bla:5:3}
| done
`----
Einfach, gelle? ;-)

Natürlich entsprechend anzupassen.

Gruß
        Malte



Reply to: