Go Back   За UNIX и Linux Форуми > Топ форуми > Shell Програмиране и скриптове
.
Google Site



Shell Програмиране и скриптове Пост въпроси за KSH, CSH, SH, Bash, Perl, PHP, SED, AWK И ДРУГИ черупки скриптове и черупки скриптови езици тук.

Closed Thread
English Japanese Spanish French German Portuguese Italian Осъществено от Powered by Google
 
Нишка Инструменти Търсене в тази нишка Оцени резба Покажи Режими
  #1 (Permalink)  
Old 07-23-2008
Регистрирани потребители
 

Присъедини Дата: May 2008
Публикации: 130
как да четат Var стойност в масив

Здрасти
Трябва да се прочете на стойност на променливите в масив така всеки символ / цифра ще се превърне в масив елемент, например:
A \u003d 147921231432545436547568678679870
Полученият масив трябва да притежава всяка цифра като елемент.
Много благодаря за всяка помощ A
Спонсорирани Връзки
  #2 (Permalink)  
Old 07-23-2008
Регистрирани потребители
 

Присъедини Дата: Jan 2008
Мнения: 55
Трябва да има някаква форма на SEPERATOR сред ценностите
  #3 (Permalink)  
Old 07-23-2008
Sivaswami's Avatar
Регистрирани потребители
 

Присъедини Дата: Mar 2007
Местоположение: Индия
Мнения: 62
Можете да използвате командата рязани вътре в електрическа верига.

рязани-C <position>
  #4 (Permalink)  
Old 07-23-2008
zaxxon's Avatar
zaxxon zaxxon is online now Forum Staff  
Модератор
 

Присъедини Дата: Sep 2007
Местоположение: Германия
Мнения: 2662
Да, това ще бъде 1-ва стъпка.

Напишете го за пример като

Код:
A="842 5 2 64  24 11"

След това можете да цикъл през нея с например

Код:
for ELE in ${A}; do
   echo "I want ${ELE] cookies!"
done

  #5 (Permalink)  
Old 07-24-2008
danmero danmero is offline Forum Advisor  
 

Присъедини Дата: Nov 2007
Местоположение: H3X
Мнения: 1565
Цитат:
Първоначално Публикувано от aoussenko View Post
Здрасти
Трябва да се прочете на стойност на променливите в масив така всеки символ / цифра ще се превърне в масив елемент, например:
A \u003d 147921231432545436547568678679870
Полученият масив трябва да притежава всяка цифра като елемент.
Много благодаря за всяка помощ A
Следващия път, моля използвайте кода маркери.
Тук е тряскам разтвор:

Код:
$ A=147921231432545436547568678679870
$ set -- $(for i in $(seq 0 $((${#A} - 1)));do printf "%s " ${A:$i:1};done)
$ echo $*
1 4 7 9 2 1 2 3 1 4 3 2 5 4 5 4 3 6 5 4 7 5 6 8 6 7 8 6 7 9 8 7 0

... или awk разтвор:

Код:
set -- $(awk -v v="$A" 'BEGIN{split(v,a,"");for (i=1;i<= length(v);i++) printf "%s ",a[i]}')


Последно редактирано от danmero; 07-24-2008 в 01:16 ч... Причина: добавяне awk разтвор
  #6 (Permalink)  
Old 07-24-2008
Регистрирани потребители
 

Присъедини Дата: Jul 2008
Местоположение: BlackMesh Managed Хостинг
Мнения: 66
Харесва ми това е малко по-добре, отколкото danmero на пример, тъй като той действително поставя я в масив:


Код:
for i in $(seq 0 $((${#string}-1))); do array[$i]=${string:$i:1}; done

Което води до:


Код:
$ A=147921231432545436547568678679870; for i in $(seq 0 $((${#A}-1))); do array[$i]=${A:$i:1}; done

$ set | grep array
array=([0]="1" [1]="4" [2]="7" [3]="9" [4]="2" [5]="1" [6]="2" [7]="3" [8]="1" [9]="4" [10]="3" [11]="2" [12]="5" [13]="4" [14]="5" [15]="4" [16]="3" [17]="6" [18]="5" [19]="4" [20]="7" [21]="5" [22]="6" [23]="8" [24]="6" [25]="7" [26]="8" [27]="6" [28]="7" [29]="9" [30]="8" [31]="7" [32]="0" [33]="")

Имайте предвид, че това ще липсват най-вече за-големите стрингове; просто пауза от и за ползване от време на време (или C-стил за ()) вместо това.

Ако това е това, което търсите, можете да създадете същия ефект, както danmero в скриптове с sed:

Код:
$ echo 147921231432545436547568678679870 | sed 's/\(.\)/\1 /g'
1 4 7 9 2 1 2 3 1 4 3 2 5 4 5 4 3 6 5 4 7 5 6 8 6 7 8 6 7 9 8 7 0


Последно редактирано от BMDan; 07-24-2008 в 03:09 ч... Причина: Добавяне sed разтвор
  #7 (Permalink)  
Old 07-24-2008
radoulov's Avatar
--
 

Присъедини Дата: Jan 2007
Местоположение: Варна, България / Милано, Италия
Мнения: 3206
По Z-Шел:


Код:
zsh-4.3.4% A=147921231432545436547568678679870
zsh-4.3.4% print $A[4]
9
zsh-4.3.4% print $A[-3]
8

С bash/ksh93, тук и струнен пъти:


Код:
$ a=($(fold -w1<<<$A))
$ printf "%s\n" "${a[0]}"
1
$ printf "%s\n" "${a[3]}"
9

За по-стари черупки:


Код:
$ A=147921231432545436547568678679870
$ set -- `printf "%s\n" "$A"|fold -w1`
$ printf "%s\n" "$1"
1
$ printf "%s\n" "$4"
9

Спонсорирани Връзки
Closed Thread

Маркери

Tags
черупка масив, променлива манипулация

Нишка Инструменти Търсене в тази нишка
Търсене в тази нишка:

Разширено търсене
Покажи Режими Оцени тази тема
Оцени тази тема:

Правила за публикуване
Ти не може да публикувате нови конци
Ти не може да публикувате отговори
Ти не може да публикувате прикачени файлове
Ти не може да редактирате вашите мнения

BB код е На
Усмивки са На
[IMG] код На
HTML код е Отдалечаване
Trackbacks са На
Pingbacks са На
Refbacks са Отдалечаване


Още UNIX и Linux Форум Теми Можете да намерим Полезни
Нишка Нишка Начално Форум Отговори Последно мнение
Прочетете CSV в Hash масив? kinmak Shell Програмиране и скриптове 1 05-07-2008 11:35 AM
Как да се чете от TXT файл и го използват като масив кутре UNIX за манекени Въпроси & Отговори 4 10-08-2007 01:18 AM
създадете масив стопанство символи от sring тогава ехо масив. rorey_breaker Shell Програмиране и скриптове 5 09-28-2007 09:42 AM
LS докато чете цикъл - вътрешни прочети взема погрешно въвеждане на dkieran Shell Програмиране и скриптове 2 05-14-2007 04:02 ч.
Как мога да прочетете множество елементи динамично в тряскам? haisubbu UNIX за манекени Въпроси & Отговори 1 08-29-2006 03:19 AM



Всички времена са GMT -4. В момента е: 04:57 AM.


Осъществено от: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Езикови преводи Осъществено от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
За UNIX и Linux Форуми Content Copyright © 1993-2010. Всички права Reserved.Ad Управление чрез RedTyger

Съдържание съответно с URL адреси vBSEO 3.2.0