Ich habe eine .txt-Datei auf meinem Computer gespeichert. Dies ist der Speicherort der Datei:
/Users/Me/Desktop/My Documents/My Fruit Log.txt
Ich möchte, dass meine AppleScript-basierte Automator-Anwendung eine bestimmte Zeile der TXT-Datei löscht.
Der Inhalt der .txt-Datei sieht folgendermaßen aus:
Also, wenn:
set lineNumberToErase to 8
Die resultierende .txt-Datei sollte wie folgt aussehen:
Beachten Sie, dass nicht nur der Text in dieser Zeile entfernt wird, sondern auch die gesamte Zeile.
Bonuspunkte, wenn die Lösung einen Mechanismus enthält, der sicherstellt, dass nicht mehr als 1 Zeile aus der Datei entfernt wird. Meine Befürchtung bei der Automatisierung solcher Löschungen ist, dass das Skript irgendwie die gesamte Datei löscht (basierend darauf, dass ich irgendwo einen kleinen Fehler gemacht habe).
Hier ist eine do shell script
AppleScript- Befehlslösung , mit der sed
die Zielzeile der Zieldatei direkt gelöscht wird.
set targetFile to "/Users/Me/Desktop/My Documents/My Fruit Log.txt"
set lineNumberToErase to 8
do shell script "sed -i '' -e '" & lineNumberToErase & "d' " & quoted form of targetFile
Wenn Sie möchten, dass eine Sicherungskopie der Zieldatei erstellt wird, ändern Sie die sed
Option -i ''
in -i '.bak'
, z. B.:
do shell script "sed -i '.bak' -e '" & lineNumberToErase & "d' " & quoted form of targetFile
Rubiks Sphäre