Проблема с получением размера файла с помощью сценария оболочки - PullRequest
0 голосов
/ 05 мая 2020

У меня есть простой сценарий оболочки, который читает журнал загруженных мной файлов, и я хочу вывести размер файла и количество строк (за вычетом единицы для заголовка CSV). Я зацикливаю правильно, но когда я пытаюсь использовать find, w c или stat, чтобы получить размер файла, появляется ошибка «Нет такого файла или каталога». Когда я пробую ту же команду в терминале, она возвращает ожидаемый размер.

fileSizeBytes=$(sudo wc -c "$fileName" | awk {'print $1'})
fileSizeKb=$((fileSizeBytes/1024))
lineCount=$(sudo wc -l "$fileName" | awk {'print $1'})
lineCount=$(($lineCount-1))

переменная fileName содержит полный путь к файлу, и я проверил, что все пользователи имеют доступ для чтения / записи. Независимо от того, запускаю ли я скрипт с моей учетной записью или как root, результат будет одинаковым.

wc: /plan/files/Today.csv: No such file or directory
wc: /plan/files/Today.csv: No such file or directory
wc: /plan/files/ERMS_STOCK_05052020.csv: No such file or directory
wc: /plan/files/ERMS_STOCK_05052020.csv: No such file or directory
wc: /plan/files/ERMS_RES_05052020.csv: No such file or directory
wc: /plan/files/ERMS_RES_05052020.csv: No such file or directory

Есть идеи, что может быть причиной этого? Я могу использовать аналогичный скрипт на моем Ma c (нужно изменить некоторые команды), но на моей виртуальной машине RHEL 7.7 я столкнулся с этой ошибкой.

Ура

1 Ответ

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

спасибо за вклад. Наконец до меня дошло, что могло происходить, - вечно сводящий с ума бегущий пробел. Как я проанализировал файл журнала, я получил пробел в конце пути. Немного sed magi c раздели и все работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...