用不同的文件名重复命令

Mel*_*emi 2 command-line bash zsh shell-script

这是某人的上篮...

我不得不重复运行一个命令:

$ wp input csv MyCSV01.csv directory_name
$ wp input csv MyCSV02.csv directory_name
$ wp input csv MyCSV03.csv directory_name
Run Code Online (Sandbox Code Playgroud)

唯一的变化是文件名增加。我怎样才能背靠背运行所有这些?

也许找到所有以 开头的文件,MyCSV*然后按顺序运行它们?和/或指定范围的文件运行MyCSV03.csv通过MyCSV05.csv?

理想情况下,解决方案对于命令行来说足够短,但它可以是一个脚本。

PSk*_*cik 6

for i in {01..20}; do  #replace with your own range
   echo \
   wp input csv "MyCSV$i.csv" directory_name
done
Run Code Online (Sandbox Code Playgroud)

如果它给你你想要的结果,注释掉 echo 行。

zsh,你用它标记你的问题,有一个较短的形式:

for i (MyCSV{01..20}.csv) wp input csv $i directory_name
Run Code Online (Sandbox Code Playgroud)

或者你可以使用它的zargs功能:

autoload zargs # best in ~/.zshrc
zargs -i MyCSV{01..20} -- wp input csv {} directory_name
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢那个反斜杠的评论。我想,如果你不介意的话,我会使用它。 (2认同)