Sed problem z przetwarzaniem znaku asterisk
: 2013-06-19, 09:14
hej, od pewnego czasu próbuję napisać sobie własny programik w bashu do backupu moich danych i w sumie wszystko ładnie idzie ale nie mogę sobie poradzić z przetworzeniem tekstu w sed, który zawiera w sobie znak '*' szczegóły poniżej
jest sobie zmienna
do której to dopisuję pliki lub katalogi, których nie chce backupować (pliki/katalogi z tej zmiennej dopisywane są do tar z opcją --exclude w innej części programu)
następnie mam okna dialogowe w terminalu i tak:
wydaje mi się, że mój problem znajduje się w poleceniu
ponieważ jeśli ze zmiennej usunę znak * to wszystko działa dobrze. Macie może jakieś pomysły jak to obejść??
Pozdrawiam
jest sobie zmienna
Kod: Zaznacz cały
exclude_list="test.txt plik.log *.conf"
następnie mam okna dialogowe w terminalu i tak:
Kod: Zaznacz cały
....
wyszukaj=`cat backup_config.sh | grep exclude_list=`
wyszukaj1=`cat backup_config.sh | grep exclude_list= | cut -f2 -d '"'`
dialog --title "Wprowadzanie danych" --inputbox "Podaj katalogi i pliki, które NIE mają być objęte backupem, pliki i katalogi podawaj odzielone od siebie jedynie spacją.\nObecnie NIE archiwizowane dane to: " 16 90 "$wyszukaj1" 2> Tmp/exclude_list.tmp
zmien=`cat Tmp/exclude_list.tmp`
spr_dane1=`cat Tmp/exclude_list.tmp | grep --regexp='"'`
spr=$?
if [ $spr -eq 1 ]; then
{
spr_dane2=`cat Tmp/exclude_list.tmp | grep '\\\'`
spr2=$?
if [ $spr2 -eq 1 ]; then
{
sed -i "s:$wyszukaj:exclude_list=\"$zmien\":g" backup_config.sh
kod16=$?
if [ $kod16 -eq 0 ]; then
{
dialog --title "Informacja" --backtitle " $backtitle " --msgbox "Operacja zakończyła się sukcesem!" 12 40
opcje_ogolne
}
else
{
dialog --title "Informacja" --backtitle " $backtitle " --msgbox "Operacja zakończyła się błędem, coś jest nie tak....!" 12 40
opcje_ogolne
}
fi
...
Kod: Zaznacz cały
sed -i "s:$wyszukaj:exclude_list=\"$zmien\":g" backup_config.sh
Kod: Zaznacz cały
exclude_list
Pozdrawiam