繁体   English   中英

在csv文件中执行命令(bash / Mac)

[英]Execute commands in a csv file (bash / Mac)

我有一个csv文件,该文件在命令行中包含一堆命令。 我只是可以bash这个csv文件,但是命令将在同一终端中顺序执行。 有没有办法在单独的终端中执行这些命令中的每一个,以便它们并行执行?

例:

就像是:

python args1
python args2
...
python argsn

您基本上已经有了一个Shell脚本。 唯一的区别是,您希望将每一行作为单独的命令运行,而不是将其作为一个脚本运行。 打开新终端的方式在某种程度上取决于操作系统,但是假设您仅使用xterm命令。 下面将把您的脚本commands.csv (或任何命名的文件)视为数据文件。

while IFS= read -r cmdline; do
    xterm -e sh -c "$cmdline" &
done < commands.csv

如果您想在Mac上进行任何认真的软件开发,我建议您安装Homebrew,因为Apple不提供软件包管理器,但可以提供大多数人使用的所有工具的旧版本... Python,sed,PHP, Perl,awk,find,grep,make,git ...

自制软件后 ,我建议您使用以下命令安装GNU Parallel

brew install parallel

一旦有了GNU Parallel ,就可以与以下命令并行运行命令:

parallel --dry-run -a commands.csv

或者,也许您想要标有其名称的行:

parallel --tag -a commands.csv

如果您希望一次运行8,请添加-j 8 如果您希望预计到达时间(应在何时完成)添加--eta等等。


顺便说一句,您可以使用以下工具寻找其他工具,例如Intel TBB:

brew search tbb

或pango,具有:

brew search pango

您可以在后台运行命令,例如

run-command &
run-some-other-command &
etc &

那是您可以使用的东西吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM