Я пытаюсь придумать общий многоцелевой способ замены текста в нескольких файлах через AppleScript.Это решение использует Perl.Может быть, есть более элегантный способ сделать это?
set myFolder to choose folder with prompt "Choose a folder:"
tell application "Finder"
try
set txtFiles to (every file in entire contents of myFolder whose name ends with ".txt") as alias list
on error
try
set txtFiles to ((every file in entire contents of myFolder whose name ends with ".txt") as alias) as list
on error
set txtFiles to {}
end try
end try
set myFiles to txtFiles
end tell
repeat with CurrentFile in myFiles
set CurrentFile to CurrentFile as string
do shell script "perl -pi -e 's/replace/me/g; s/andme/too/g;' " & quoted form of (POSIX path of CurrentFile)
end repeat
Кроме того, в идеале я бы хотел сделать Perl-часть более читабельной, чтобы каждый шаблон поиска / замены находился в отдельной строке, но do shell script
в AppleScript, похоже, не в состояниииметь дело с переносами строк, например,
do shell script "perl -pi -e '
s/replace/me/g;
s/andme/too/g;
s/andhere/measwell/g;
' " & quoted form of (POSIX path of CurrentFile)
Итак, по сути, есть ли лучший / более элегантный способ сделать это?Не обязательно должен быть с perl
, но для неэксперта я продолжаю находить perl
самый простой способ справиться с этим, особенно потому, что он хорош в регулярных выражениях (решение должно уметь выполнять регулярные выражения).