我被困住了。我需要一个脚本来读取我的文本文档并在34个字符上插入自定义文本。这需要在我的文本文档中的每一行发生。
示例:
输入文字
`12345678912345678912345678912345 ABCD`
`12345678912345678912345678912345 EFGH`
`12345678912345678912345678912345 IJKL`
`12345678912345678912345678912345 MNOP`
输出文字
`12345678912345678912345678912345 custom text hereABCD`
`12345678912345678912345678912345 custom text hereEFGH`
`12345678912345678912345678912345 custom text hereIJKL`
`12345678912345678912345678912345 custom text hereMNOP`
我在下面提供了我可以在终端内工作的脚本。但是,如果有一种方法可以让它在Applescript中运行,那么当我将文件放到应用程序上时,它会提示并询问我想要插入的文本(这将是“自定义文本”)然后点击OK它会运行。
如果在Applescript中无法做到,那么Automator也可以工作,我似乎无法让Automator使用脚本。 Automator的流程是:
1. Get Specified Finder Items
2. Run Shell Script
这样运行正常,但它不会更改文档。帮助
答案 0 :(得分:1)
在Bash中,您可以使用while read -r -N 34
重复读取34个字符。未经测试的例子:
while IFS= read -r -N 34 || [[ -n "$REPLY" ]]
do
printf '%s' "$REPLY"
printf '%s\n' " custom text here"
done < input-file
更新:看起来OP想要在每行#34之后丢弃字符:
while IFS= read -r || [[ -n "$REPLY" ]]
do
printf '%s' "${REPLY:0:34}"
printf '%s\n' " custom text here"
done < input-file
更新:OP在这里,我根据你的知识想出了我需要做的一切!
while IFS= read -r || [[ -n "$REPLY" ]]
do
printf '%s' "${REPLY:0:34}"
printf '%s' " Faux_Folder/"
printf '%s\n' "${REPLY:36}"
done < input-file > output-file
答案 1 :(得分:1)
不确定这是否适用于OSX(至少适用于ubuntu。):
sed -n -E '1h;2,$H;${g;s/.{34}/& custom text here\n/gp}' input.txt
基本上,它会一直读到文件结尾。然后在每34个字符后插入“自定义文本\ n”。