使用Automator.app逐行读取文本文件

Har*_*med 2 shell applescript automator

我是编码的新手所以请耐心等待我.

我用Automator(OSX)创建了一个工作流程,工作正常.我唯一的问题是我希望它在许多输入上运行(即作为批处理).我插入了Loop动作,但我遇到的问题是每次更改初始输入.

我想使用applescript每次自动插入初始输入.

我有一个带URL的TXT文件.使用Apple脚本,我想将URL(或一行文本)复制到剪贴板.在下一次迭代中,我想复制下一个URL(或文本行).

有人可以帮忙吗?

谢谢!!

jm6*_*666 8

您可以创建一个循环工作流程(称为LinesToClipboard.workflow)

  • 从文本文件中获取一行(不是rtf或doc)
  • 将该行复制到剪贴板
  • 运行当前的工作流程
  • 再次循环下一行

工作流程:

  • 创建新的automator工作流程
  • 创建一个变量
    • 在底部找到图标"显示或隐藏工作流程变量列表"并显示工作流程变量(空)
    • 右键单击并"新变量..."
    • 将变量命名为"LineNumber"
  • 添加动作:
    • Get Value of Variable (电话号码)
    • Run Shell Script
    • 贝壳: /bin/bash
    • 重要的是:改变Pass inputas arguments
    • 添加以下内容(完全复制,包含所有引号等):
    • 在脚本的内容中,将更/etc/passwd改为文件名的完整路径,例如/Users/myname/Documents/myfile.txt
    • 在此操作结束时,剪贴板将包含文件中的一行
linenum=${1:-0}
filename="/etc/passwd" # full path of your text-filename
let linenum++
sed -n "${linenum}p" < "$filename" | pbcopy
echo $linenum
Run Code Online (Sandbox Code Playgroud)
  • Set Value of Variable (电话号码)
  • Run Workflow - 添加您当前的工作流程(或"ShowClipboard.workflow" - 见下文)
    • Wait for workflow to finish应检查
    • 重要输出菜单应为:"返回动作输入"
  • Loop
    • 加上你的点数......
  • Run Shell Script(忽略此操作的输入),内容一行:( echo 0当循环结束时,这会将变量LineNumber重置为零)
  • Set Value of Variable (电话号码)

对于测试,您可以创建另一个名为ShowClipboard.workflow的工作流,其中包含以下内容:

  • Get Contents of Cliboard
  • Set Value of Variable (clipval)
  • Ask for confirmation(并拖动(clipval)到Message字段)

运行第一个工作流程.

截图(肯定):)

在此输入图像描述

第二个工作流程(用于测试)

在此输入图像描述