Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Програмирование на shell  (Прочитано 1711 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Apis08

  • Автор темы
  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Програмирование на shell
« : 08 Декабря 2012, 02:58:35 »
Люжи добрые, помогите кто чем может! Нужно написать скрипты для следующих заданий:
· Посчитать количество файлов текущего каталога, содержащих подстроку
"include".
· Отсортировать список текстовых файлов текущей директории в алфавитном
порядке и записать его в файл.
· Удалить из текущего каталога все файлы, содержащие подстроку "text".
· Вывести имя текущего каталога, номер текущего процесса (запускающего этот
скрипт) и все параметры командной строки, с которым его запустили.
· Проверить заданный каталог на наличие в нем неразрешенных мягких ссылок.
Если таковые имеются - отправить о них сообщение по mail заданному
пользователю.
Заранее спасибо!

Оффлайн AzraelKDE

  • Активист
  • *
  • Сообщений: 773
  • Kubuntu/Xubuntu user
    • Просмотр профиля
Re: Програмирование на shell
« Ответ #1 : 08 Декабря 2012, 08:26:37 »
Apis08, вот вам кусок содержимого моего скрипта, загружающего файл данных с удалённого сервера и режущий его на части. После лёгкого напилинга он подойдёт для решения части ваших задач.

#---новый код - 22.06.2012---     
# Разбиваем файлы на фрагменты (заголовок - данные)
for file in `ls -1 $store_dir`; do
filename=$store_dir/$file
  if [ -f $filename ]; then
    #ищем в файле вхождение строки "_AVTO"
    awk '/_AVTO/ {i=i+1; outfile="'$filename'_part_"i}{print $0 > outfile}' $filename;
    echo Cutting file $file into $file parts  >> $log_file 2>&1
    # Исходный файл отправляем в архив
    [ -f $filename ] && mv $filename ${arch_dir}/$file
  fi
done

Java + HTML5 = Brain explosion.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Програмирование на shell
« Ответ #2 : 10 Декабря 2012, 16:28:09 »
1) grep -l 'include' * | wc -l

2) file * | grep ' text' | sort > textfile.list

3) rm `grep -l 'text' * `

4) pwd; echo $$; echo $@
$$ - номер текущего процесса, процесс запустивший этот скрипт это не текущий процесс. Как узнать pid родительского процесса не знаю.

5) "Неразрешенные мягкие ссылки" это как? Битые символьные ссылки?

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Програмирование на shell
« Ответ #3 : 10 Декабря 2012, 16:51:56 »
(Нажмите, чтобы показать/скрыть)
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

 

Страница сгенерирована за 0.073 секунд. Запросов: 25.