[bash] Liczenie ciagów znaku w wierszu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
COVERek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 153
Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

[bash] Liczenie ciagów znaku w wierszu

Post autor: COVERek »

Kod: Zaznacz cały

<div>texttext</div>
Jak z tego wyciągnąć liczbę: 2 z racji tego ze są dwa 'div' w wierszu?
Nie mogę wykombinować...
Paminol
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 172
Rejestracja: 09 lip 2012, 16:53
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Xfce
Architektura: x86_64

Re: [bash] Liczenie ciagów znaku w wierszu

Post autor: Paminol »

Bash-a nie umiem ale ogólnie programuje więc może pseudokod się przyda.

Kod: Zaznacz cały

1 Uruchomienie
2 Wczytywanie każdego znaku po kolei
3 Jeśli znajdziesz "d" sprawdź cze następny znak to "i"
4 Jeśli tak  idź do 5 jeśli nie wróć do 2 i czytaj znaki dalej
5 Sprawdź czy następny znak to "v"
6 Jeśli tak zastosuj inkrementację zmienne dajmy na to "n" jeśli nie wróć do 2 i czytaj znaki dalej
7 Wróć do 2 i czytaj znaki dalej
8 Wyświetl zmienną "n"
Można oczywiście zastosować lepsze metody ale jak wspomniałem na Bash-u się nie znam.
norvoles
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1113
Rejestracja: 04 sty 2008, 20:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Re: [bash] Liczenie ciagów znaku w wierszu

Post autor: norvoles »

Bash-a nie umiem ale ogólnie programuje więc może pseudokod się przyda.
W tym przypadku się nie przyda :P

@COVERek
Jak z tego wyciągnąć liczbę: 2 z racji tego ze są dwa 'div' w wierszu?
Na przykład tak:

Kod: Zaznacz cały

echo "<div>texttext</div>" | grep -o "div" | wc -l
Żeby wiedzieć jak to działa poczytaj manuale:

Kod: Zaznacz cały

man echo
man grep
man wc
salvadhor
Przyjaciel
Przyjaciel
Posty: 340
Rejestracja: 09 lip 2005, 18:33
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Re: [bash] Liczenie ciagów znaku w wierszu

Post autor: salvadhor »

Jak masz możliwość i chcesz bezstresowo operować sobie na stringach, poczytaj/zastosuj awk/mawk wespół z bashem.
Root walks behind you.
404 sposoby na Linuksa: http://404.g-net.pl
#254787
Ubek308
Zakręcona Traszka
Zakręcona Traszka
Posty: 574
Rejestracja: 25 maja 2011, 10:17
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: [bash] Liczenie ciagów znaku w wierszu

Post autor: Ubek308 »

Nawet elementarna znajomosc Perla daje narzedzia o jakich sie ludziom wczesniej nie snilo.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: [bash] Liczenie ciagów znaku w wierszu

Post autor: ethanak »

Nie wspominając o elementarnej znajomości Pythona :)
Mały 1
Zakręcona Traszka
Zakręcona Traszka
Posty: 548
Rejestracja: 24 sty 2008, 15:55
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: LXDE
Architektura: x86_64

Re: [bash] Liczenie ciagów znaku w wierszu

Post autor: Mały 1 »

Prościej:

Kod: Zaznacz cały

echo "<div>texttext</div>" | awk '{print gsub("div","")}'
salvadhor
Przyjaciel
Przyjaciel
Posty: 340
Rejestracja: 09 lip 2005, 18:33
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Re: [bash] Liczenie ciagów znaku w wierszu

Post autor: salvadhor »

Najprościej - policzyć ilość znaków dla całej linii, odjąć ilość znaków tagów :D Bezczelnie skutecznie, o ile tagi występują w stałej i wiadomej konfiguracji.
Root walks behind you.
404 sposoby na Linuksa: http://404.g-net.pl
#254787
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 14 gości