Назад | Перейти на главную страницу

разделить имя файла в цикле и указать каждую часть

У меня есть каталог со списком файлов, например

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?

Чтобы получить просто aaaaaa с помощью cut с участием . используется в качестве разделителя:

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

Чтобы получить просто 111111, просто измените номер поля:

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

Чтобы получить всю вторую часть, вы можете использовать встроенные в Bash манипуляции со строками:

echo ${filename#*.name.}