Вот попробуйте это
echo $(echo "35/3600" | bc -l )
, чтобы ваша команда выглядела как
echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $(echo "$sec/3600" | bc -l ) is the amount of hours "
Чтобы контролировать количество печатаемых значащих цифр, используйте scale = N
. Например:
$ echo "scale=3; 35/3600" | bc -l
.009
Если вы также хотите напечатать ведущий 0
(что, как ни странно, bc
не сработает ), вы можете скормить число в printf
(который также может округлить его вверх / вниз для вас):
$ printf '%.3f\n' $(echo "35/3600" | bc -l)
0.010
$ printf '%.4f\n' $(echo "35/3600" | bc -l)
0.0097
Чтобы перечислить только скрытых файлов :
ls -ap | grep -v / | egrep "^\."
Обратите внимание, что файлы здесь все, что не является каталогом . Это не файл в «все в Linux - это файл» ;)
Чтобы перечислить только скрытые каталоги :
ls -ap | egrep "^\..*/$"
Комментарии:
ls -ap
lists все в текущем каталоге, включая скрытые
, и помещает /
в конец каталогов. grep -v /
инвертирует результаты grep /
, так что каталог не включается. «^ \ .. * / $»
соответствует всему, что начинается с .
и оканчиваются на /
. .
и ..
из результатов второй части, вы можете использовать параметр -A
вместо -a
для ls
, или если вам нравится работать с регулярным выражением, вы можете использовать "^ \. [^.] + / $"
вместо "^ \ .. * / $"
. Удачи!
Переключитесь на zsh
(если вы этого еще не сделали), и запустите
ls .*(^/)
Часть внутри скобок - это так называемые модификаторы glob, они означают выбор всего, кроме каталогов.
Если вас интересуют только обычные файлы, и вы хотите исключить не только каталоги, но и другие специальные файлы (именованные трубы и т.д.), то попробуйте
ls .*(.)
Эта команда работает:
ls -a | grep ".*"
Любой скрытый файл начинается с.
*
соответствует всем символам
Список скрытых файлов (расширенный формат длинного списка)
find -maxdepth 1 -type f -name '.*' -ls | sed 's/^..//'
Список каталогов (длинный формат)
find -maxdepth 1 -type d -name '.*' -ls | sed 's/^..//'