Skocz do zawartości

String


jazzy

Rekomendowane odpowiedzi

czy ktos wie co pod feroda dziala jako rozdzielacz stringow. wszedzie pisza,ze 'split', ale u mnie split sluzy to dzielenia plikow, a ja chce rozdzielic najbanalniejszy string np. po spacjach 'ala ma kota' ->

ala

ma

kota

 

prosze wybaczyc banalnosc mojego problemu, ale jestem poczatkujacym linuxowcem :(

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Nie ma czegoś takiego jak konkretny separator dla całego systemu (zreszta nie tylko w uniksach). Separatorem argumentów dla programu czy skryptu jest zazwyczaj spacja (chyba, że programista określi inaczej). Separatorem przy określaniu ścieżki dostępu (zmienna systemowa PATH) jest ":" (dwukropek). Jakby się zastanowić, to pewnie i inne przykłady innych znaków by się znalazło.

Podaj jakiś konkretny przyklad. Gdzie piszą o tym splitowaniu? W odniesieniu do jakiej sytuacji?

Odnośnik do komentarza
Udostępnij na innych stronach

Podaj jakiś konkretny przyklad. Gdzie piszą o tym splitowaniu? W odniesieniu do jakiej sytuacji?

 

 

Divide up a USENET group name into its hierarchical components:

split "comp.lang.tcl.announce" .

=> comp lang tcl announce

 

See how the split command splits on every character in splitChars, which can result in information loss if you are not careful:

split "alpha beta gamma" "temp"

=> al {ha b} {} {a ga} {} a

 

Zupenie to nie idzie u mnie na kompie :( i nie wiem czemu

tak jakby moja funkcja split byla inna od tej

nawet w manualu jest opis, ktory pokauje zupenie inna skladnie

a potrzebuje tego typu funkcji do stringow

moze znasz jakas inna ?

 

---- łączenie postów ----

 

po prostu musze podzielic string na kawalki wedlug spacji i tyle

a ja nie wiem, jak je zrobic zeby sie zbytnio nie nameczyc :(

Odnośnik do komentarza
Udostępnij na innych stronach

Nadal nie wiem czy dobrze rozumiem. Podaj podstawowe informacje o tym co robisz.

Skrypt w jakiejś powłoce (bash, ksh, csh)? Program w C?

Skąd bierzesz ten łańcuch? Parametr skryptu/programu? Jakimi znakami jest oddzielony?

 

P.S. Nie piszu postu pod postem, korzystaj z przycisku "EDYTUJ"

Odnośnik do komentarza
Udostępnij na innych stronach

Hm, czytasz helpa o funkcji split w TCL-u, a używasz systemowego programu split do dzielenia plików na kawałki. To są zupełnie różne rzeczy.

Najlepiej napisz sobie programik w TCL lub perlu (wtedy będzie tak jak w Twoim helpie), ale uruchamiaj je za pomocą interpreterów tych języków.

Możesz też użyć programu systemowego tr:

echo "ala ma kota" | tr " " "\n"

(split robi co innego).

Odnośnik do komentarza
Udostępnij na innych stronach

Z tego co sobie odświeżyłem z basha to jest jeszcze zmienna specjalna IFS. Domyślnie ustawiona na wartości spacja, tabulacja i nowa linia. Można ją oczywiście przedefiniować np.

bash-2.05a$ export IFS=.
bash-2.05a$ read  lancuch
aaa.bbb.ccc
bash-2.05a$ echo $lancuch
aaa bbb ccc
bash-2.05a$

Jak widać kropki zniknęły, bo zostały odczytane jako separator. Żeby przywrócić domyslne wartości $IFS należy wykonac polecenie

bash-2.05a$ unset IFS
bash-2.05a$ read  lancuch
aaa.bbb.ccc
bash-2.05a$ echo $lancuch
aaa.bbb.ccc
bash-2.05a$

 

[EDIT]jazzy skąd pomysł żeby umieścić ten topic w dziale "Serwery i zarządzanie"? Przenoszę.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...