|
|
ВНИМАНИЕ: Използвайте форумите на сайта за дa зададете вашите въпроси.
Въпрос |
От: Marto (martopost __@__ abv< dot >bg) |
Дата: 01/17/2002 |
Става дума са BASH скрипт, въпросът ми е следния:
Изпълнявам командата find по следния начин:
find . -name "*.html" -print
на stdout да речем се извежда следното, представено на два
реда:
/hame/John/index.html
/home/John/links.html
искам да присвоя всеки един ред на отделна променлива
примерно:
a=/hame/John/index.html
b=/home/John/links.html
Как мога да го направя ?
Измислих един вариант, но той се отнася само за
последния ред и не ми върши работа.
Може да стане така:
b=`find . -name "*.html" -print | tail -1`
Tail отпечатва определен брой редове, започвайки
от последния към първия.
Благодря ви отговора!
|
Отговор #1 |
От: Sudo |
Дата: 01/17/2002 |
Ами RESULTS=`find . -name "*.html" -print` ще ти върне
резултата в масив и после :
for I in $RESULTS; do
echo $I # или квото там искаш да правиш :)
done
Има и още поне един начин:
find . -name "*.html" -exec COMMAND; # Try man find :)
Ама това не съм го ползвал че съм мързелив :(((
Успех
|
Отговор #2 |
От: Marto |
Дата: 01/17/2002 |
Благодаря ти за отговара все пак, но това не помага !
Можеби не си ме разбрал правилно ще се опитам да го задам
по следния по-прост начин:
Имам един текстов вайл "file.txt", който съдържа следните
2 реда в себе си:
/home/John/index.html
/home/John/webs.html
Аз искам чрез BASH script да отворя този файл за четене и
да присвоя първия ред на една променлива "a" и втория ред
на втора променлива "b". Как да го направя ? Благодаря !
|
Отговор #3 |
От: ttl |
Дата: 01/18/2002 |
probvai sys slednoto:
promenliva=`gawk '/tova koeto tyrsish/{print}' file.txt`
naprimer:
a=`gawk '/John*index*html/{print}' file.txt`
b=`gawk `/John*links*html/{print}' file.txt`
i tn. .... ne sum mnogo siguren no probvai varianti ...
procheti neshto i za sed osven za awk mnogo sa polezni
v takiva sluchai :)
|
Отговор #4 |
От: milen |
Дата: 01/18/2002 |
razbral te e dobre , bachka si kakto ti kazva Sudo, i tva e
naj naturalnia variant.
da go povtora:
i=0
for b in `cat file.txt`
do
a[$i]=$b
let i=$i+1
done
i posle mozesh da vidish koj da e element ot masiva:
for i in 2 3 4
do
echo ${a[$i]}
done
P.S. polzvam masiv, stot misla che iskash da si zapazish
vsichkite promenlivi. ako ste gi obrabotvash edna po edna,
ne ti trebe. abe, dobre e da prochetesh tva:
http://linuxdoc.org/HOWTO/Adv-Bash-Scr-HOWTO/index.html
|
Отговор #5 |
От: Milen |
Дата: 01/18/2002 |
P.P.S.
i oburni golemo vnimanie za kvo sluzak kavichkite,
apostrofite, razlichnite skobi i t.n.
vazno e.
|
<< cbq (0
) | problem s kompilaciqta na qdroto (5
) >>
|
|
|
|
|