Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
[SOLVED] [bash]Dzielenie tekstu danym znakiem
Autor Wiadomość
Freev Offline
Przecięty człowiek

Liczba postów: 49
Dołączył: 29-03-2009
Reputacja: 1
Post: #1
[bash]Dzielenie tekstu danym znakiem
W bashu programuję (o ile można to nazwać programowaniem) dopiero od kilku godzin.

Mam sobie tekst w zmiennej np
Kod:
Imię|Nazwisko|telefon|adres|
Jak pobrać np Nazwisko

W dosie robiło się to przez tokens czy eol w for, w php explode('|', $zmienne).
Ale jak to się robi w bashu?

Tele duperele dla Ubuntu +
(Ten post był ostatnio modyfikowany: 07.03.2011 00:18:13 przez panjandrum.)
06.03.2011 17:09:32
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Barthalion Offline
NIE MA MENU
******

Liczba postów: 1 029
Dołączył: 25-01-2009
Reputacja: 20
Post: #2
RE: [bash]Dzielenie tekstu danym znakiem
Rozwiązanie brzmi: tablica
Obejście: awk/sed/regexpy bashowe

Google nigdy nie powie Ci: nie mam czasu, było, użyj szukajki, Google, RTFM, STFU
06.03.2011 17:23:58
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
mariom Offline
zbanowany
*******

Liczba postów: 1 021
Dołączył: 16-01-2009
Reputacja: 20
Post: #3
RE: [bash]Dzielenie tekstu danym znakiem
Tak jak Barthalion napisał → tablica to najlepsze rozwiazanie:
Kod:
zmienna=( "imię" "nazwisko" "telefon" "adres" )

echo ${zmienna[0]}
imię

zmienna=("dwa słowa" "inne dwa" "trzy i tyle")

echo ${zmienna[0]
dwa słowa


AWK:
Kod:
echo "imie|nazwisko|bla" | awk 'BEGIN { FS="|" } { print $1 }'
imie

Temat rozwiązany? Dodaj [solved]!
Tekst z konsoli, kod jakiś? Użyj [code]!
blog
(Ten post był ostatnio modyfikowany: 06.03.2011 17:34:59 przez mariom.)
06.03.2011 17:32:58
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Enlik Offline
„techniczny”
*******

Liczba postów: 1 043
Dołączył: 12-12-2008
Reputacja: 26
Post: #4
RE: [bash]Dzielenie tekstu danym znakiem
jeden ze sposobów:
Kod:
#!/bin/bash
magiapaniesamamagia='Imię|Nazwisko|telefon|adres'
oldIFS=$IFS
IFS='|'
for el in $magiapaniesamamagia; do echo "$el"; done
IFS=$oldIFS

Być może trzeba wziąć pod uwagę, że ten sposób się zwali, jeśli będzie elementem będzie np. * → zostanie ona zamieniona na listę plików. Jednakże to można wyłączyć.

[Obrazek: zeDGS.png]
Please don't steal my focus!
| git
06.03.2011 17:37:46
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Freev Offline
Przecięty człowiek

Liczba postów: 49
Dołączył: 29-03-2009
Reputacja: 1
Post: #5
RE: [bash]Dzielenie tekstu danym znakiem
dzięki,
temat do zamknięcia

Tele duperele dla Ubuntu +
06.03.2011 21:52:36
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [solved][BASH] aktualizowanie czasu co 10 min waldi11 2 397 19.11.2011 21:01:13
Ostatni post: waldi11
  Bash wyswietlanie nr lini w ktorym znajduje sie dany wyraz?? rryk 6 2 281 31.10.2011 12:56:18
Ostatni post: wrosiak
  [BASH] Zablokowanie wylaczenie komputera... rryk 10 547 26.09.2011 18:33:46
Ostatni post: Lachu
  [ROZWIĄZANE] [BASH] - dowolny - Kawałek stringa do zmiennej rewers79 2 683 15.06.2011 14:16:00
Ostatni post: rewers79
  BASH-sortowanie bąbelkowe Pitek016 2 844 20.04.2011 18:10:26
Ostatni post: Pitek016
  [ROZWIĄZANE] Idealna bramka... curl,wget,bash,python,perl,php rryk 21 5 546 06.04.2011 06:53:55
Ostatni post: rryk
  [ROZWIĄZANE] [Bash][C#/Gambas] Wiele pytań. eloaders 7 1 453 23.01.2011 00:07:52
Ostatni post: eloaders
  BASH - zmiena w nazwie tablicy dragonn 5 1 100 22.01.2011 22:51:53
Ostatni post: Enlik
  [ROZWIĄZANE] [bash/perl/python//cokolwiek] Jak z tekstu wywalic wszystkie znaki nowej linii rryk 18 3 551 28.11.2010 19:13:41
Ostatni post: rryk
  [ROZWIĄZANE] [bash] Podświetlanie linijki z danym wyrazem... rryk 8 1 316 15.11.2010 01:05:51
Ostatni post: rryk

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Linux360.pl - forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS