Applescript zum löschen von Zeilen TxT Dokument

Baerlos

Neues Mitglied
Thread Starter
Dabei seit
12.07.2011
Beiträge
10
Reaktionspunkte
0
Hi @ All,

ich bräuchte ein Applescript, der mir in einem txt Dokument jede zweite Zeile komplett löscht.

Wer könnte mir da aushelfen?

Thx

P.S. Das Dokument hat über 1,7 Millionen Zeilen --> und Exel bricht bei 1,3 Millionen Zeilen ab.
 
Bei der Dokumentengröße solltest du auf der Kommandozeile arbeiten (man kann den Aufruf später in eine Automatoraktion verpacken, damit es bequemer wird).

Code:
sed -e '1~2d' dummy2 > dummy3
Erklärung:sed löscht (d) jede zweite Zeile in dummy2, beginnend mit Zeile 1 ('1~2d') und schreibt das Ergebnis in dummy3.
Quelle: http://userpage.fu-berlin.de/~voelker/linux/linux.html

Ach ja: keine Garantie, erst mit Sicherheitskopie probieren!
 
Hallo,

mit AS z.B. so:

Code:
set textFile to choose file
set textFileContent to read textFile

set finalText to ""
set allLines to paragraphs in textFileContent

set n to 1

repeat while (n < (count of allLines))
	
	set nLine to item n of allLines
	set finalText to finalText & nLine & return
	
	set n to (n + 2)
	
end repeat

return finalText

Ich bin mir aber fast sicher, dass das ungeeignet für Dich ist.
AS lädt die Datei auf einmal und bei der Anzahl Zeilen wird es sicherlich abschmieren.

Viele Grüße
 
Noch eine Shell Lösung:

Code:
sed -n 'p;n' test.txt > testneu.txt
 
TexEdit+ kann sowas... überflüssige Returns/Linefeeds entfernen...
 
sed -n 'p;n' test.txt > testneu.txt

hat perfekt geklappt.

Danke
 
Ich habe

Code:
sed -e '1~2d' dummy2 > dummy3
unter linux getestet (GNU sed 4.1.4), es funktioniert. Aber auf meinem Mac unter OSX 10.6 leider nicht, die ~ stört. Kann mir das jemand erklären?
@Pill:
Elegante Syntax, ich hab in der man Page danach gesucht, sie aber anscheinend nicht verstanden... Könntest du eventuell bitte noch ein Wort dazu verlieren, ich will ja nicht dumm sterben ;-)
 
sed -e '1~2d' dürfte in der comp.unix.shell nur mit der GNU Implementierung laufen.

sed -n 'p;n': Das p gibt eine Zeile aus, das n ignoriert eine Zeile und danach wird das ganze wiederholt. Das ganze funktioniert also auch z.B. andersrum oder man könnte mit sed -n 'n;n;p' jede 3. Zeile ausgeben usw.
 
Zurück
Oben Unten