Код: Выделить всё
# new="Модулi пам'ятi";k="`echo $new | sed 's/[ \t]*$//'| sed "s/'/\\\'/"`"; echo "$k"
Модулi пам'ятi
# new="Модулi пам'ятi";echo $new | sed 's/[ \t]*$//'| sed "s/'/\\\'/"
Модулi пам\'ятi
Код: Выделить всё
# new="Модулi пам'ятi";k="`echo $new | sed 's/[ \t]*$//'| sed "s/'/\\\'/"`"; echo "$k"
Модулi пам'ятi
# new="Модулi пам'ятi";echo $new | sed 's/[ \t]*$//'| sed "s/'/\\\'/"
Модулi пам\'ятi
Мало! Ставь 5 (пять) бэкслэшев или используй $(...) вместо `...`.schizoid писал(а):Код: Выделить всё
# new="Модулi пам'ятi";k="`echo $new | sed 's/[ \t]*$//'| sed "s/'/\\\'/"`"; echo "$k"
Код: Выделить всё
$ echo `echo '\\'`
\
$ echo $(echo '\\')
\\
Код: Выделить всё
i=0
code=''
descr=''
cat descr.temp |
while read k1 k2;
do
i=`expr $i + 1`
w="$k2"
new="$(echo $w | sed 's/[ \t]*$//'| sed "s/'/\\\'/g")"
chet=`expr $i % 2`
# 0 - четное; 1 - нечетное
if [ $chet -eq 1 ];
then
code=$new
else
descr=$new
echo "insert into zakaz.sc33 (code,descr) value ('$code','$descr');" >> descr.sql
fi
done
Код: Выделить всё
CODE: 101
DESCR: Мишка А4-tech SWOP-3, blue, optical, PS/2
CODE: 10015
DESCR: ZIP Drive 100Mb NEC, int. IDE
CODE: 1002
DESCR: Принтери
CODE: 10026
DESCR: Картридж EPSON St Color 680 black(double)
CODE: 10028
DESCR: HDD RACK UWSCSI
CODE: 1003
DESCR: Пристрої безперебiйного живлення
Код: Выделить всё
insert into zakaz.sc33 (code,descr) value ('101','Мишка А4-tech SWOP-3, blue, optical, PS/2');
insert into zakaz.sc33 (code,descr) value ('10015','ZIP Drive 100Mb NEC, int. IDE');
insert into zakaz.sc33 (code,descr) value ('1002','Принтери');
insert into zakaz.sc33 (code,descr) value ('10026','Картридж EPSON St Color 680 black(double)');
insert into zakaz.sc33 (code,descr) value ('10028','HDD RACK UWSCSI');
insert into zakaz.sc33 (code,descr) value ('1003','Пристрої безперебiйного живлення');
insert into zakaz.sc33 (code,descr) value ('1004','Факси');
insert into zakaz.sc33 (code,descr) value ('10049','HP Color LaserJet CM1015, A4, принтер/сканер/копир, 8/3 чб./цв., 600dpi, USB 2.0');
insert into zakaz.sc33 (code,descr) value ('1005','Телефони беспроводные Panasonic');
insert into zakaz.sc33 (code,descr) value ('1006','Копіри');
insert into zakaz.sc33 (code,descr) value ('1007','Корпуси');
insert into zakaz.sc33 (code,descr) value ('1008','Монiтори');
гм... да чё тут оптимизировать то?! сделай замены седомschizoid писал(а):как можно его оптимизировать?
Код: Выделить всё
zg# ./1.sh
INSERT INTO zakaz.sc33 set code='101',
value='Мишка А4-tech SWOP-3, blue, optical, PS/2';
INSERT INTO zakaz.sc33 set code='10015',
value='ZIP Drive 100Mb NEC, int. IDE';
INSERT INTO zakaz.sc33 set code='1002',
value='Принтери';
INSERT INTO zakaz.sc33 set code='10026',
value='Картридж EPSON St Color 680 black(double)';
INSERT INTO zakaz.sc33 set code='10028',
value='HDD RACK UWSCSI';
INSERT INTO zakaz.sc33 set code='1003',
value='Пристрої безперебiйного живлення';
zg# cat 1.sh
#!/bin/sh
sed -E \
-e "s/CODE: (.*)/INSERT INTO zakaz.sc33 set code='\1',/" \
-e "s/DESCR: (.*)/value='\1';/" \
1.txt
zg# cat 1.txt
CODE: 101
DESCR: Мишка А4-tech SWOP-3, blue, optical, PS/2
CODE: 10015
DESCR: ZIP Drive 100Mb NEC, int. IDE
CODE: 1002
DESCR: Принтери
CODE: 10026
DESCR: Картридж EPSON St Color 680 black(double)
CODE: 10028
DESCR: HDD RACK UWSCSI
CODE: 1003
DESCR: Пристрої безперебiйного живлення
zg#
гм... мускуль игнорирует пробелы, это пофигуschizoid писал(а):еще нуно в одну строку запрос (ну или перенос вставить), а то тоже мускль не хавает.
Код: Выделить всё
zg# cat | mysql mysql
select
user from
user
limit
1
;
user
root
zg#
Код: Выделить всё
zg# ./1.sh
INSERT INTO test.sc33 set code='101',
value='Мишка \'А4-tech\' SWOP-3, blue, optical, PS/2';
INSERT INTO test.sc33 set code='10015',
value='ZIP Drive 100Mb NEC, int. IDE';
INSERT INTO test.sc33 set code='1002',
value='Принтери';
INSERT INTO test.sc33 set code='10026',
value='Картридж \'EPSON\' St Color 680 black(double)';
INSERT INTO test.sc33 set code='10028',
value='HDD RACK UWSCSI';
INSERT INTO test.sc33 set code='1003',
value='Пристрої безперебiйного живлення';
zg# ./1.sh | mysql test
zg# mysql -be 'select * from test.sc33;'
+-------+----------------------------------------------+
| code | value |
+-------+----------------------------------------------+
| 101 | Мишка 'А4-tech' SWOP-3, blue, optical, PS/2 |
| 10015 | ZIP Drive 100Mb NEC, int. IDE |
| 1002 | Принтери |
| 10026 | Картридж 'EPSON' St Color 680 black(double) |
| 10028 | HDD RACK UWSCSI |
| 1003 | Пристрої безперебiйного живлення |
+-------+----------------------------------------------+
zg# cat 1.sh
#!/bin/sh
sed -E \
-e "s/'/\\\\'/g" \
-e "s/CODE: (.*)/INSERT INTO test.sc33 set code='\1',/" \
-e "s/DESCR: (.*)/value='\1';/" \
1.txt
zg#