我需要一个AppleScript来编辑给定文本文件的内容(通用结构)并删除第5个字符到第8个字符,保留字符9-20,并删除字符21-32。例如:
说这是我的文本文件:
" Qt的&放大器;:$ YP $ shshshahahah $ jsjsjajssjh "
(单行)
我需要从第一个$开始删除到下一个$,然后删除(包括)最后一个$之后的所有内容。在这个例子中,最终结果是:
Qt的&安培;:shshshahahah
谢谢, Isaac D' Keefe
答案 0 :(得分:0)
您可以在终端中运行这样的命令:
sed -Ei '' 's/(.{4}).{4}(.{12}).*/\1\2/' ~/Documents/file
或者如果您需要使用AppleScript:
set p to "/Users/username/Documents/file"
set input to read p as «class utf8»
set input to text 1 thru 4 of input & text 9 thru 20 of input
set fd to open for access p with write permission
set eof fd to 0
write input to fd as «class utf8»
close access fd
答案 1 :(得分:0)
我需要从第一个$开始删除到下一个$,并且 然后删除(包括)最后一个$之后的所有内容。在这个例子中, 最终的结果是:
根据这些条件,您可以使用分隔符/分隔符将字符串拆分为块。然后根据我的理解,你只想保留奇数项并删除偶数项(按索引)。因此,以下脚本将按照您的描述工作,而不是处理字符的索引。
set theString to " Qt&:$yp$shshshahahah$jsjsjajssjh "
set {oldTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, "$"}
set textItems to every text item of theString
set AppleScript's text item delimiters to oldTID
set filteredTextItems to {}
repeat with x from 1 to count textItems by 2
set end of filteredTextItems to item x of textItems
end repeat
return filteredTextItems as string