Как я могу просто извлечь одно поле, разделенное подчеркиванием, из имени файла? - PullRequest
0 голосов
/ 22 февраля 2020

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

REG_2016120200hourly_d01_20161202_00_00_00.nc

Из этого имени я хотел бы извлечь и поместить в переменную:

1) дата 20161202

    for file in /path/*;
    do
     filename=$(basename -- "$file")
     date=${filename:4:8}
     echo $date
    done

и это работает, скрипт дает мне 20161202, и я не знаю, почему

2) временной шаг 00

Мне нужно взять Первые два ноль 00, и я пытаюсь с

timestep=${filename:34:36}, но это не работает.

Я немного удивлен, потому что я использовал тот же метод в других сценариях и У меня никогда не было проблем.

Спасибо

1 Ответ

1 голос
/ 22 февраля 2020
timestep="${filename:34:2}"

2 - это длина.


От man bash:

${parameter:offset:length}: расширение подстроки. Расширяется до длины символов значения параметра, начиная с символа, заданного смещением. [...]

...