Ответ
 
Опции темы
Старый 30.05.2007, 21:52      #21
Frosty
Местный
Пользователь Mozilla Firefox
 
Аватар для Frosty
По умолчанию

Все, работает, идеально
Frosty вне форума Пол: Мужчина   Ответить с цитированием Вверх
Старый 02.06.2007, 12:01      #22
Frosty
Местный
Пользователь Mozilla Firefox
 
Аватар для Frosty
По умолчанию

Хех, запустил скрипт rmn'a в папке с пакетами-моментальный Shift+Delete всей папки, смешно блин, видимо придеца опять выкачивать пару часов все архивы
Скрипт удаляет все.deb

Последний раз редактировалось Frosty; 02.06.2007 в 12:10.
Frosty вне форума Пол: Мужчина   Ответить с цитированием Вверх
Старый 02.06.2007, 16:34      #23
rmn
Местный
По умолчанию

Frosty, да-да, деструкция - наше фсё. :]
переделай скрипт, чтобы он не удалял, а перемещал пакеты в отдельный каталог.
rmn вне форума   Ответить с цитированием Вверх
Старый 02.06.2007, 17:18      #24
Frosty
Местный
Пользователь Mozilla Firefox
 
Аватар для Frosty
По умолчанию

Если запукать скрипт через консоль из сухого и темного места, то все работает нормально, а ели из папки с пакетами, то приходица качать заново
Frosty вне форума Пол: Мужчина   Ответить с цитированием Вверх
Старый 03.06.2007, 01:01      #25
tmp0000
Пользователь
Пользователь Mozilla Firefox
 
Аватар для tmp0000
По умолчанию

Скрипт для массового переименования файлов с неправильными названиями
Спойлер
#/bin/bash
#Script that renames deb-packages that have bad filenames.
#Author: Igor Pellinen (Russia) aka Igron aka tmp0000 && Vadim Gusev (Russia) aka Frosty

#First we do a textfile that contains wrong filenames
find . -name '*%3a*' > wrong.names

#Rename files, mask [0-9]%3a is changed to nothing
for i in `grep %3a wrong.names`; do mv $i `echo $i | awk '{gsub("[0-9]%3a","");print }'` ; done

#Remove temporary textfile
rm wrong.names

#All done. What are waiting to see here?
__________________
Думай головой, %username%.
tmp0000 вне форума   Ответить с цитированием Вверх
Старый 19.08.2007, 22:44      #26
dotpack
Новичок
По умолчанию

Подскажите, пожалуйста, необходимо для определённой директории сделать следующее:
- всем каталогам присвоить права 755
- всем файлам присвоить права 644
dotpack вне форума   Ответить с цитированием Вверх
Старый 20.08.2007, 19:13      #27
rmn
Местный
По умолчанию

dotpack,
Код:
find /определенная/директория/ -type d -exec chmod 755 {} \;
find /определенная/директория/ -type f -exec chmod 644 {} \;
rmn вне форума   Ответить с цитированием Вверх
Благодарности: 1
dotpack (20.08.2007)
Старый 03.10.2007, 21:18      #28
tmp0000
Пользователь
Пользователь Mozilla Firefox
 
Аватар для tmp0000
По умолчанию

Возник вопросец: вывести все директории в текущей дире.
Код:
for i in *; do test -d $i && echo $i; done
выдает в некоторых строках:
Код:
bash: test: слишком много аргументов
Оффтоп
Оффтоп Это нужно товарищу в дальнейшем для аналога Denver под linux (да, знаю, это абсурдно звучит)
__________________
Думай головой, %username%.

Последний раз редактировалось tmp0000; 03.10.2007 в 21:49.
tmp0000 вне форума   Ответить с цитированием Вверх
Старый 03.10.2007, 21:24      #29
NOboDy
Пользователь
 
Аватар для NOboDy
По умолчанию

Сообщение от tmp0000 Посмотреть сообщение
for i in *; do test -d $i && echo $i; done
Видимо дело в этом:
Код:
for i in *; do test -d "$i" && echo $i; done
NOboDy вне форума   Ответить с цитированием Вверх
Благодарности: 1
tmp0000 (03.10.2007)
Старый 03.10.2007, 21:49      #30
rmn
Местный
По умолчанию

золотое правило шелл-программинга - кавычить переменные. Во избежание.

Последний раз редактировалось rmn; 03.10.2007 в 21:50.
rmn вне форума   Ответить с цитированием Вверх
Благодарности: 1
tmp0000 (03.10.2007)
Старый 16.04.2008, 19:11      #31
ArcFi
Firefox User
Пользователь Mozilla Firefox
По умолчанию

Недавно пришлось переустанавливать систему и, чтобы потом не перекачивать заново 2,5 Гб, решил забекапить кэш, предварительно почистив его от пакетов старых версий.
К сожалению, aptitude autoclean удаляет старые пакеты, даже если они находятся в количестве одной версии, поэтому решил было использовать dpkg-scanpackages, как показано несколькими постами выше, немного оптимизировав код:
Код:
dpkg-scanpackages archives 2>&1 | grep -e '^ !.*is repeat;' | \
	grep -o -e 'archives\/.*\.deb' | while read
do
	sudo rm -v "${REPLY}"
done
Предполагаю, что кусок grep -e '^ !.*is repeat;' | grep -o -e 'archives\/.*\.deb' можно было бы заменить чем-то более элегантным...

И всё-таки, dpkg-scanpackages работает достаточно медленно, к тому же требует установки дополнительных пакетов, поэтому немного поразмыслив, написал ещё 1 сценарий:
Код:
ls -1 archives/*.deb | while read
do
	test "${REPLY%%_*}" == "${PREV%%_*}" && sudo rm -v "${PREV}"
	PREV="${REPLY}"
done
Возможно, что быстрый интернет ещё не всех настиг, и кому-то этот скриптик может пригодиться.
ArcFi вне форума Пол: Мужчина   Ответить с цитированием Вверх
Благодарности: 1
Doctor_Zlo (16.04.2008)
Старый 30.09.2008, 21:31      #32
Elwen
Местный
Пользователь Google Chrome
 
Аватар для Elwen
По умолчанию

Вот такая задача:
Находится с помощью поиска (find) перечень неких каталогов, и необходимо подсчитать количество этих каталогов (с помощью команды wc) и вывести этот перечень на экран вместе с их количеством. Реально ли это сделать? По отдельности то всё работает )
__________________
Elwen вне форума Пол: Женщина   Ответить с цитированием Вверх
Старый 30.09.2008, 21:52      #33
rmn
Местный
По умолчанию

ну, если "в лоб", то так
Код:
list="`find . -type d критерии поиска неких каталогов`"; \
echo "$list"; echo "$list" | wc -l
rmn вне форума   Ответить с цитированием Вверх
Благодарности: 1
Elwen (30.09.2008)
Старый 30.09.2008, 22:22      #34
Elwen
Местный
Пользователь Google Chrome
 
Аватар для Elwen
По умолчанию

rmn, не работает ) echo "$list" просто печатает собственно строку find блаблабла, ито без этого - \
__________________

Последний раз редактировалось Elwen; 30.09.2008 в 22:27.
Elwen вне форума Пол: Женщина   Ответить с цитированием Вверх
Старый 30.09.2008, 22:26      #35
rmn
Местный
По умолчанию

Mornis, первый аргумент у find - корневой каталог поиска. В примере это текущий каталог (ему соответствует точка в шелле). Соответственно, точку надо заменить на каталог, о котором идёт речь в задании. Например, корневой /.

Во-вторых, критерии поиска тоже нужно сформулировать согласно синтактису команды find. Критерии поиска мне не ведомы.

В-третьих, важен порядок, тип и кол-во кавычек. Шелл к этому чувствителен. Если всё это в порядок привести, то работать должно.

Последний раз редактировалось rmn; 30.09.2008 в 22:27.
rmn вне форума   Ответить с цитированием Вверх
Старый 30.09.2008, 22:30      #36
Elwen
Местный
Пользователь Google Chrome
 
Аватар для Elwen
По умолчанию

rmn, во первых, я додумалась до того чтобы написать в поиске всё что нужно во вторых всё остальное ввела так же как у вас, но не работает ) кстати другого способа нет? ато можно ещё два раза поиск написать, то же самое будет
__________________

Последний раз редактировалось Elwen; 30.09.2008 в 22:31.
Elwen вне форума Пол: Женщина   Ответить с цитированием Вверх
Старый 30.09.2008, 22:33      #37
rmn
Местный
По умолчанию

Mornis, какой шелл? версия? Вообще, лучше всё это сразу приводить. И задание дословно, и команда, которая в шелле исполнялось. Иначе разговор слепого с глухим получается.

Последний раз редактировалось rmn; 30.09.2008 в 22:33.
rmn вне форума   Ответить с цитированием Вверх
Старый 30.09.2008, 22:48      #38
InS7
Пользователь
Пользователь Mozilla Firefox
По умолчанию

версия там:
Код:
/bin/bash --help
GNU bash, version 3.1.17(1)-release-(i586-suse-linux-gnu)
у меня работает
Код:
list="`find /home -type d `";echo "$list"; echo "$list" | wc -l
а так
Код:
user@xxx:~> list="`find ~ -type d `";echo "$list"; echo "$list" | wc -l
list="`find ~ -type d `";echo "$list"; echo "$list" | wc -l
find ~ -type d 
^C
не хочет

Добавлено через 2 минуты
ps. -maxdepth 1 добавь а то там где ты ищещь запаришься искать

Последний раз редактировалось InS7; 30.09.2008 в 22:48. Причина: Добавлено сообщение
InS7 вне форума   Ответить с цитированием Вверх
Благодарности: 1
Elwen (30.09.2008)
Старый 05.03.2009, 13:36      #39
tmp0000
Пользователь
Пользователь Mozilla Firefox
 
Аватар для tmp0000
По умолчанию

В последнее время только и занимаюсь тем, что качаю клипы с трубы.

Накидал скриптик для автоматического получения названия песни с трубы и переименования файлов.
Спойлер
#!/bin/bash
# ver. 0.1.0
# Script for collecting info from truba videos and rename files
# Author: Igor Pellinen <igronus[at]gmail[dot]com>
# Licence: GPL3+

# Directories
CLIPS_DIRECTORY="/home/igron/newclips/"

# Log file
LOG_DIRECTORY="/home/igron/"
LOG_FILE=".truba-parser.log"

# Create a new log file if it doesn't exist
cd "$LOG_DIRECTORY"
[ -e "$LOG_FILE" ]
if [ $? -eq 1 ]; then
echo "It seems like log file does not exist, creating..."
touch "$LOG_FILE"
fi

# Adding start time to log
echo "`date` Truba-parser started" >> "$LOG_DIRECTORY"/"$LOG_FILE"

# Start process
cd "$CLIPS_DIRECTORY"
for file_name in *
do
# File extension
extension=`echo ${file_name##*.}`

# File name without extension
file_short_name=`echo ${file_name%.*}`

# Get html file from truba
wget "http://truba.karelia.ru/video.php?id=$file_short_name" -O temp.file

# Parse info from html file
string=`cat temp.file | sed '1,/<head>/d' | sed '2,/<\/html>/d'`
string_utf=`echo $string | iconv -f koi8-r -t utf8`
length=`echo ${#string_utf}`
new_length=`echo "$length-15" | bc`
new_name=`echo ${string_utf:7:$new_length}`
new_full_name=$new_name"."$extension

# Log and process rename
echo "Renaming $file_name to $new_full_name..." >> "$LOG_DIRECTORY"/"$LOG_FILE"
mv "$file_name" "$new_full_name"

# Removing temporary html file
rm temp.file
done


# Adding end time to log
echo "`date` Truba-parser finished" >> "$LOG_DIRECTORY"/"$LOG_FILE"

Схема такая: URL клипов находится в файле, клипы льются по списку в каталог $CLIPS_DIRECTORY wget'ом, после чего данный скрипт их переименовывает как надо.

PS. No warranty, just idea. Use at your own risk.
__________________
Думай головой, %username%.
tmp0000 вне форума   Ответить с цитированием Вверх
Старый 24.12.2009, 22:34      #40
NameLess
Пользователь
Пользователь Mozilla Firefox
 
Аватар для NameLess
По умолчанию

Люди нужна помощь в переделывание скрипта.
есть такой скрипт
Цитата:
#!/bin/bash
while read A TAIL
do
echo $A
done|sort|uniq -c|sort -nr|while read A TAIL
do
echo $TAIL -$A
done
нужно его переделать вот в это:

Цитата:
Системный журнал Linux содержит записи в следующем формате:
дата время хост демон[pid]: сообщение
Пример журнала:
Sep 25 16:55:00 plasma CROND[4014]: bla-bla-bla
Sep 25 16:55:07 plasma CROND[4012]: bla-bla-bla
Sep 25 16:55:23 plasma CROND[4035]: bla-bla-bla
Sep 25 16:55:00 plasma mgetty[4013]: bla-bla-bla

Напишите сценарий, который будет анализировать текст из
системного журнала, поступающий на стандартный ввод сценария,
и сообщать какие различные процессы с какими PID помещают сообщения
в системный журнал.

Пример:
$./myscrpt.sh </var/log/messages
CROND: 4014, 4012, 4035
mgetty: 4013
а то первый осилил а второй пока не могу.
__________________
Lubuntu/Fedora14 LXDE
NameLess вне форума Пол: Мужчина   Ответить с цитированием Вверх
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу фильм Vadim Поиск 2372 04.01.2018 17:08
Загадка ZyDeHb На завалинке 1277 22.02.2013 17:37
Ударная сила Exciter Документальные 5 06.05.2012 20:39
Star Wars: The Force Unleashed Inki Игровые приставки 28 13.12.2008 13:47
Волшебная сила искусства (1970) kellan Хорошее, забытое, старое... 0 06.03.2008 23:54


Обратная связь
Текущее время: 16:15. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot