Скрипт для удаления пробелов и символов в строке
Добавлено: 2008-08-14 18:45:55
Помогите написать скрипт, на sh, который определяет есть ли в строке символы [, ], /, \, пробел и удаляет их.
Где ты ничего не можешь сделать - ты ничего не должен хотеть
https://forum.lissyara.su/
Код: Выделить всё
zg# echo "Hello/ \W \o/r[]l d!" | sed -e 's/[ \\\/\[]//g' -e 's/]//g'
HelloWorld!
zg#
Код: Выделить всё
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
надо использовать кавычкиtormozok писал(а):есть пробелы не срабатывает screen
Код: Выделить всё
screen "$arg"
их надо экранировать, можно с помощью sed'а. Но я бы писал на php или perl, там есть специальные встроенные функции экранирования.tormozok писал(а):а если символы []\|/ не работает grep.
Код: Выделить всё
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