在循环中分割文件名并引用每个部分

我有一个目录中的文件列表,例如

file.name.aaaaaa.111111 file.name.bbbbbb.222222 file.name.cccccc.333333 

我需要一种方法来获取每个文件,将其分割为“。” 然后使用每个部分它将被传递给一个mysql查询。

我有以下几点:

 for file in $localdir/file.name.* do filename=`basename "$file"` for i in $(echo $filename | tr "." "\n") do echo $i done done 

我怎样才能参考个别部分? 因为我只需要MySQL查询的“aaaaa”和“11111”?

为了得到aaaaaa使用cut . 被用作分隔符:

 echo $filename | cut -f 3 -d '.' 

为了得到111111 ,只需更改字段号:

 echo $filename | cut -f 4 -d '.' 

要获得整个第二部分,可以使用Bash的内置string操作:

 echo ${filename#*.name.}