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

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

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

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

我如何引用各个部分?因​​为我只需要“aaaaa”和“11111”进行 MySQL 查询?

答案1

aaaaaa使用cutwith.作为分隔符:

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

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

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

要获取整个第二部分,可以使用 Bash 的内置字符串操作:

echo ${filename#*.name.}

相关内容