我有一堆文件,例如:
jobReports/NARX_20191212_1.out
jobReports/NARX_20191212_10.out
jobReports/NARX_20197695_2.out
jobReports/NARX_20197695_3.out
jobReports/NARX_20261798_1.out
其中第一个数字序列表示jobID,第二个数字序列表示arrayID。
我想.out
对该目录中的所有文件执行搜索,其中 jobID 等于20197695
or 20261798
。
在命令行中,这有效:
grep "Saving results to" jobReports/NARX_{20197695,20261798}*.out | wc -l
,这给了我所需文件中该字符串的出现次数。在我的脚本中,我有以下内容:
#!/bin/bash
myJobs = ( 20197695, 20261798 )
IFS=, eval 'myJobs_string="${myJobs[*]}"'
echo $(grep "Saving results to" jobReports/NARX_{$myJobs_string}*.out |wc -l)
运行时,我收到错误:
grep: jobReports/NARX_{: No such file or directory
grep: 20197695: No such file or directory
grep: }*.out: No such file or directory
所以看起来在脚本内部,大括号扩展没有像我预期的那样工作......我能做些什么来解决这个问题?