Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» проблема со скриптом на Shell'e

Автор: pe1e
Дата сообщения: 17.02.2011 15:59
Доброго времени суток.
Я хотел разобраться с такой интересной вещью в Unix'e как Shell и даже задачку нашел,чтобы скрипт первый свой написать. Но вот прошла уже неделя,а воз и нынче там... Люди добрые,помогите пожалуйста,не оставьте один-на-один со своими начинаниями...

текст задачки такой:
Shell-программа подсчитывает количество и выводит список всех файлов (без каталогов) в порядке уменьшения их длин в поддереве, начиная с каталога, имя которого задано параметром Shell-программы. Форма вывода результата:
каталог <имя каталога> <---- начальный каталог
<имя файла> <длина>
<имя файла> <длина>
.......
каталог <имя каталога> <---- подкаталог
<имя файла> <длина>
<имя файла> <длина>
и т.д.

Заранее спасибо за любую помощь!
Автор: ASE_DAG
Дата сообщения: 17.02.2011 17:08
Во-первых, стоило обратиться в тему «вопрос по bash скрипту». Я понимаю, что по названию темы этого не скажешь, но все-таки.
Во-вторых, зачем вам это? Это что, лабораторная?
В-третьих, не очень понятно, что есть «их длина в поддереве»? Количество символов в пути?
Автор: pe1e
Дата сообщения: 17.02.2011 17:16
1. я извиняюсь, просто не сразу сообразил куда стоит задать вопрос на данную тему;
2. если бы это была лабораторная, то навряд ли бы за спасибо просил помочь разобраться. Задачу нашел в Сети (для особо придирчивый и ссыль предоставить могу). Я примерно суть понимаю,но как записать ума и опыта не хватает.
3. Длина - это, по всей видимости, размер файла.
Автор: ASE_DAG
Дата сообщения: 17.02.2011 17:53
pe1e
Чего-то вы какие-то нереальные задачки решаете.
Если «в тупую», то как-то так:
$ ls -R1skS | awk '{print $2" "$1}'
Автор: pe1e
Дата сообщения: 17.02.2011 18:01
А не "в тупую" это сложнее будет выглядеть?
Я с удовольствием рассмотрю предложенные Вами ресурсы (книги,сборники,сайты), по которым, по Вашему мнению, разобраться с Shell'ом будет значительно проще, если на Ваш взгляд эта задача настолько плоха.
Автор: ASE_DAG
Дата сообщения: 17.02.2011 18:10
pe1e
Что бы решать какую-то задачу не «в тупую», надо бы знать зачем это вообще нужно.
Кстати, чтобы вывод более полно соответствовал тому, что вы запросили:
$ ls -R1skS | awk '/^\..*:$/{print "каталог "$0} /^[ ]*[0-9]+/{print " "$2" "$1}'
Коментарии нужны?

> книги,сборники,сайты
Хороший вопрос. С ходу не отвечу.
Но для начала давайте определимся, что вы изучаете: Позикс или ГНУ. Т.е. система у вас какая стоит? Наверное, все-таки ГНУ.
Автор: pe1e
Дата сообщения: 17.02.2011 18:22
Было бы просто замечательно, если бы были хотя бы небольшие комментарии по написанной команде.

У меня стоит GNU (если я ничего не путаю, то GNU - это если есть графический интерфейс). Стоит Simply Linux 5.0
Автор: ASE_DAG
Дата сообщения: 17.02.2011 18:31
pe1e
> то GNU - это если есть графический интерфейс
Нет, ГНУ — это собственно операционная система кроме ядра, включая в т.ч. шелл (Баш, в вашем случае) и компанию.

> хотя бы небольшие комментарии по написанной команде
А что именно там не понятно? Что означают ключи ls, легко узнать из man ls. Авк получает по пайпу вывод вида (посмотрите какого, выполнив только ls -R1skS), в нем вам зачем-то потребовалось переставить местами размер и имя файла, заодно добавим кое-где слов и пробелов и не будем выводить строки «итого».

А по вопросу литературы давайте все-таки переберемся в упомянутую мною выше тему.

Страницы: 1

Предыдущая тема: FastReport 4 Ent TfrxRichView


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.