![使用不同的文件名重复命令](https://linux22.com/image/78650/%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%E9%87%8D%E5%A4%8D%E5%91%BD%E4%BB%A4.png)
这是某人的上篮......
我必须重复运行命令:
$ 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
?
理想情况下,该解决方案对于命令行来说足够短,但它可以是一个脚本。
答案1
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
答案2
for csv in MyCSV[01][0-9].csv
do wp input "$csv" directory_name
done
答案3
在zsh中
: MyCSV<01-20>.csv(e*'wp input csv $REPLY directory_name'*)