假设有几个文件,例如以下
CLIENT_1.csv
CLIENT_2.csv
CLIENT_3.csv
CLIENT_4.csv
我们是否可以使用任何壳命令/尴尬将1,2,3,4引导到名为" ID"的变量中?这样我们就可以做以下
if [ ${ID} != 4 ]
then
blah blah blah
fi
获取每个文件的编号部分:
for file in CLIENT_*.csv ; do
id=${file%.csv} # remove trailing '.csv'
id=${id#CLIENT_} # remove leading 'CLIENT_'
if [ "$id" != 4 ] ; then ... ; fi
done
这几乎是这个问题的重复。如何使用bash在目录中迭代文件?
它使用fileName通配符在列表中迭代。在您的情况下,您将使用:
for filename in /mydirectory/CLIENT_*.csv; do
#whatever you wanted to do
done
这是文件名字符串模式是变量的另一种方法。bash:变量中的通配符的文件名文件名存储在变量文件(查看接受的答案(中,在为循环初始化扩展了通配符之后。再次使用通配符的力量,看起来像这样:
putfile=CLIENT_*.csv
for file in $putfile; do #whatever you wanted to do
done