Bash

使用不同文件名重複命令

  • December 3, 2015

這是某人的上籃…

我不得不重複執行一個命令:

$ wp input csv MyCSV01.csv directory_name
$ wp input csv MyCSV02.csv directory_name
$ wp input csv MyCSV03.csv directory_name

唯一的變化是文件名是遞增的。我怎樣才能將所有這些背靠背執行?

也許找到所有以開頭的文件MyCSV*然後按順序執行它們?和/或指定要執行的文件MyCSV03.csv範圍MyCSV05.csv

理想情況下,該解決方案對於命令行來說足夠短,但它可以是一個腳本。

for i in {01..20}; do  #replace with your own range
  echo \
  wp input csv "MyCSV$i.csv" directory_name
done

如果 echo 行提供了您想要的結果,請註釋掉它。

zsh,你用它來標記你的問題,它的形式更短:

for i (MyCSV{01..20}.csv) wp input csv $i directory_name

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

autoload zargs # best in ~/.zshrc
zargs -i MyCSV{01..20} -- wp input csv {} directory_name
for   csv in MyCSV[01][0-9].csv
do    wp  input "$csv" directory_name
done

引用自:https://unix.stackexchange.com/questions/246950