Предоставление bash знать, что нужно искать соответствующее плавающее число, когда задано целое - PullRequest
1 голос
/ 27 мая 2020

Я использую CFD-код для запуска моделирования. Выходные файлы записываются в папку с отметкой времени в качестве имени. Если время больше 1e6, имя папки печатается в формате с плавающей запятой. Например ..., 993600, 997200, 1.0008e + 06, 1.0044e + 06, 1.008e + 06, ... и так далее.

Мне нужно извлечь некоторые данные из этих выходных файлов. Я написал сценарий bash, и он хорошо работает, если время вывода папки меньше 1e6. После этого, когда имена потоков больше 1e6, файл bash продолжает читать числа в целочисленном формате, тогда как мои файлы находятся в формате с плавающей запятой и, следовательно, сообщает об ошибке (ошибка не найден файл) из-за несоответствия.

Например, bash ищет папку 1000800, тогда как у меня есть папка 1.0008e + 06. Есть ли способ указать bash то, что вы ищете, в плавающем формате, чтобы завершить sh задание?

Любые указатели, пожалуйста?

1 Ответ

0 голосов
/ 27 мая 2020

После нескольких попыток я нашел не изящный способ сделать это. Я создаю строковую переменную:

time = "1.008e + 06"

, чтобы найти указанное имя c папки и войти в нее для выполнения нескольких команд.

Недостатком этой процедуры является то, что она становится громоздкой, если имеется много папок, поскольку мне нужно явно ввести имя папки в сценарии bash, и цикл таким образом невозможен.

...