Скрипт для удаления пробелов и символов в строке
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- ст. сержант
- Сообщения: 359
- Зарегистрирован: 2006-10-05 18:27:56
- Откуда: Нижний НОвгород
Скрипт для удаления пробелов и символов в строке
Помогите написать скрипт, на sh, который определяет есть ли в строке символы [, ], /, \, пробел и удаляет их.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Скрипт для удаления пробелов и символов в строке
Код: Выделить всё
zg# echo "Hello/ \W \o/r[]l d!" | sed -e 's/[ \\\/\[]//g' -e 's/]//g'
HelloWorld!
zg#
-
- ст. сержант
- Сообщения: 359
- Зарегистрирован: 2006-10-05 18:27:56
- Откуда: Нижний НОвгород
Re: Скрипт для удаления пробелов и символов в строке
Спасибо.
Но наверно мне надо было забать вопрос по другому.
На писал скрипт для работы с ctorrent.
Суть, скрипт сканирует определенную папку на наличие торрент файлов, проверяет запущены эти торренты или нет и если нет то запускает.
Но столкнулся с бедой , если в имени файла есть пробелы не срабатывает screen
а если символы []\|/ не работает grep.
В итоге торрент или не запускается или запускается несколько раз.
Но наверно мне надо было забать вопрос по другому.
На писал скрипт для работы с ctorrent.
Суть, скрипт сканирует определенную папку на наличие торрент файлов, проверяет запущены эти торренты или нет и если нет то запускает.
Код: Выделить всё
cat /usr/local/etc/start_torrent.sh
#!/bin/sh
dpach=/mnt/sata/torrents/
ppach='/usr/local/bin/screen -dmS'
param='/usr/local/bin/ctorrent -p 48148 -S 127.0.0.1:2780'
last="(null)"
ttt=""
#---запускаю ctcs сервер, чтобы можно было через веб интерфейс закачками рулить.
$ppach CTCS /usr/local/etc/torrent/ctcs -u 30 -d 30
cd $dpach
#-- ищу торрент файлы в директории
ls *.torrent|
while read line
do
#----проверяю запущен ли screen с таким именем, если нет то запускаю
ttt=`screen -ls | grep $line | awk '{print $1}'`
if [ -z ${ttt} ]
then
$ppach $line $param ${dpach}$line
fi
last=$line
done
exit 0
а если символы []\|/ не работает grep.
В итоге торрент или не запускается или запускается несколько раз.
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Скрипт для удаления пробелов и символов в строке
надо использовать кавычкиtormozok писал(а):есть пробелы не срабатывает screen
Код: Выделить всё
screen "$arg"
их надо экранировать, можно с помощью sed'а. Но я бы писал на php или perl, там есть специальные встроенные функции экранирования.tormozok писал(а):а если символы []\|/ не работает grep.
-
- ст. сержант
- Сообщения: 359
- Зарегистрирован: 2006-10-05 18:27:56
- Откуда: Нижний НОвгород
Re: Скрипт для удаления пробелов и символов в строке
Переписал скрипт целиком.
(не очень кравсиво но работает. Проблему с пробелами в имени не решил, удаляю пробелы руками)
Код: Выделить всё
cat /usr/local/etc/start_torrent2.sh
#!/bin/sh
dpach=/mnt/sata/torrents/
ppach='/usr/local/bin/screen -dmS'
param='/usr/local/bin/ctorrent -p 48148 -S 127.0.0.1:2780'
last="(null)"
#-останавливаю сервер ctcs
ps | grep ctcs | awk '{print $1}' |
while read line
do
kill $line
done
sleep 5
$ppach CTCS /usr/local/etc/torrent/ctcs -u 30 -d 30
#-закрываю все screen с торентами
ps | grep ctorrent | awk '{print $1}' |
while read line
do
kill $line
done
sleep 10
#-проверяю папку с торрент файлами и запускаю их
cd $dpach
ls *.torrent|
while read line
do
$ppach "$line" $param ${dpach}$line
last=$line
done
exit 0