1

Люди добрые, помогите пожалуйса! Нужно написать скрипты, которые делали бы следующие задания:
- Посчитать количество файлов текущего каталога, содержащих подстроку
"include".
- Отсортировать список текстовых файлов текущей директории в алфавитном
порядке и записать его в файл.
- Удалить из текущего каталога все файлы, содержащие подстроку "text".
- Вывести имя текущего каталога, номер текущего процесса (запускающего этот
скрипт) и все параметры командной строки, с которым его запустили.
- Проверить заданный каталог на наличие в нем неразрешенных мягких ссылок.
Если таковые имеются - отправить о них сообщение по mail заданному
пользователю.
Заранее благодарен!

2

Вы предлагаете выполнить за вас ваше задание.Предполагается ли какая-нибудь оплата?
Если нет, покажите, выполняли ли вы что-либо сами и что именно у вас не получается.

Был, был и весь вышел...

3

Я пробовал выполнить первый пункт следующим образом:
grep -l "include" | wc -l
Мне ничего не выводило на екран, приходилось самому прерывать выполнение команди.

4

Почти у любой команды в Linux есть подробная документация.
Введите, к примеру, man grep.

P.S. grep, find, sort, bash (а именно эти команды и оболочка понадобятся, чтобы решить ваши задачи) — не исключение.

Был, был и весь вышел...

5

Попробовал такую команду:
grep -rl include /home/apis |wc -l
Команда щитает список количество файло, но недостаток - перед этим выводит список всех файлов в которых была найдена эта строка

6

А зачем вы используете опцию -r — рекурсивный поиск? Ведь по вашим условиям поиск должен проводиться только в текущем каталоге.

Apis пишет:

но недостаток - перед этим выводит список всех файлов в которых была найдена эта строка

Скопируйте вывод консоли и покажите — у меня, к примеру, команда подобная вашей показывает только общее число найденных файлов.

Был, был и весь вышел...

7

Apis пишет:

- Проверить заданный каталог на наличие в нем неразрешенных мягких ссылок.

В качестве бонуса:
— работает в любой оболочке

find -L /home/share/media -type l

— работает в zsh

file **/*(D@) | fgrep broken
for i in **/*(D@); [[ -f $i || -d $i ]] || echo $i
echo **/*(@-^./=%p)
print -l **/*(-@)
Был, был и весь вышел...

8

-r использую потому, что без него не работает.
Благодарю за помощь

9

Apis пишет:

r использую потому, что без него не работает.

Apis пишет:

- Посчитать количество файлов текущего каталога, содержащих подстроку
"include".

grep -l include * | wc -l
Был, был и весь вышел...

10

Apis пишет:

- Удалить из текущего каталога все файлы, содержащие подстроку "text".

rm -f $(grep -l text *)
Был, был и весь вышел...

11

Все дело было в *, я ее не ставил. Теперь все работает! Благодарю за помощь! И можна еще вопрос?
для задания
"Отсортировать список текстовых файлов текущей директории в алфавитном
порядке и записать его в файл."
команда dir выводит список файлов в алфавитном порядке, для записи в файл я пробовал следующий вариант
var=$(dir)
echo &var>file
но не работает, пока ищу другие способы решения

12

Apis пишет:

"Отсортировать список текстовых файлов текущей директории в алфавитном

ls -1 *.txt > list.txt
Был, был и весь вышел...

13

Спасибо

rm -f $(grep -l text *)

работает, ну а в задании

Apis пишет:

"Отсортировать список текстовых файлов текущей директории в алфавитном

слова текстовых не должно быть просто список файлов... сейчас пытаюсь что то придумать

14

Apis пишет:

слова текстовых не должно быть просто список файлов...

Как я понимаю, «текстовых», значит, имеющих расширение txt.

Был, был и весь вышел...

15

имеется ввиду всех файлов, слово "текстовых" я написал случайно, его не должно быть

16

Apis пишет:

имеется ввиду всех файлов, слово "текстовых" я написал случайно, его не должно быть

ls -1 * > list.txt

или  даже

ls -1 > list.txt
Был, был и весь вышел...

17

Таки да, работает, и это же так просто! Благодарю!

18

Apis пишет:

Таки да, работает, и это же так просто!

И, как оказывается, можно и -1 убрать, т.е.

ls > list.txt
Был, был и весь вышел...

19

кто нибудь научите меня пользоваться "переадресацией"
просто в ум не идет.
я знаю что
cat file > newfile
либо еще какие либо камбинации и потом > file
а как делать наоборот?
чтоб было
<
??

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

20

moshell пишет:

кто нибудь научите меня пользоваться "переадресацией"

man bash раздел REDIRECTION

95% процентов проблем находятся между клавиатурой и стулом.

21

Fat-Zer пишет:
moshell пишет:

кто нибудь научите меня пользоваться "переадресацией"

man bash раздел REDIRECTION

тут zenon меня подсодил на  zsh
как так с совместимостью?

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

22

moshell пишет:

тут zenon меня подсодил на  zsh как так с совместимостью?

должно быть всё тоже самое... это же не csh какой-нить... единственное что вызывает сомнения — встроенные документы...

95% процентов проблем находятся между клавиатурой и стулом.

23

LA  спасибо, отличный урок!  +1