假设有以下几个文件
CLIENT_1.csv
CLIENT_2.csv
CLIENT_3.csv
CLIENT_4.csv
是否有任何shell命令/ awk可用于将1,2,3,4引导到名为" ID"的变量中?这样我们就可以做到以下
if [ ${ID} != 4 ]
then
blah blah blah
fi
答案 0 :(得分:2)
获取每个文件的数字部分:
for file in CLIENT_*.csv ; do
id=${file%.csv} # remove trailing '.csv'
id=${id#CLIENT_} # remove leading 'CLIENT_'
if [ "$id" != 4 ] ; then ... ; fi
done
答案 1 :(得分:0)
这几乎是这个问题的重复。 How to iterate over files in a directory with Bash?
它使用文件名通配符来遍历列表。在您的情况下,您将使用:
for filename in /mydirectory/CLIENT_*.csv; do
#whatever you wanted to do
done
这是另一种方法,文件名字符串模式是一个变量。 bash: filenames with wildcards in variables 在for循环初始化中展开通配符后,文件名存储在变量文件中(查看接受的答案)。再次使用通配符的功能,您的示例将如下所示:
putfile=CLIENT_*.csv
for file in $putfile; do #whatever you wanted to do
done