Bash скрипт как принять одно- или двузначное число и сделать его двузначным

Учитывая, что ваш exclude_file содержит пути, а не имена, вам необходимо использовать -path для сопоставления его записей. Чтобы исключить соответствующие подкаталоги каталогов, вам также необходимо -prune их. Это должно сработать:

find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -print

Если вы хотите видеть только файлы, вы можете печатать только файлы:

find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -type f -print
1
09.03.2016, 00:38
1 ответ

bash интерпретирует число с нулем в начале как восьмеричное. Проблема не в формате, проблема в переменной $ input_day .

Вы можете удалить их с помощью различных методов (см., Например, awk-эквивалент функции LTRIM в C ).

Дополнительная литература:

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

1
27.01.2020, 23:48

Теги

Похожие вопросы