Unix - skrypt porównujący znaki

Unix - skrypt porównujący znaki
Arwena Marenwen
Arwena Marenwen
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:8
0

Piszę skrypt UNIXowy, który ma za zadanie sprawdzić czy dane słowo występuje w pliku.
Mój kod prezentuje sie następująco

Kopiuj
#!/bin/bash

plik1=$1

plik2=$2

slowo1=$3



rozmiar=`cat "$1" | wc -l`

while [ $rozmiar -gt 0 ]; do

	slowo=`cat "$1" | tail -n $rozmiar | head -n 1`

	if [ $slowo = $3 ]; then

		echo "$3"

		echo "$slowo"

		echo "plik1"

	else 

		echo "Różne"

	fi

	rozmiar=`expr $rozmiar - 1`

done

Wydaje sie być poprawny jednak nie porównuje mi wartości (pliki istnieją, wypełnione znakami)
(działanie jest w zdjęciu w załączniku)

  • aaa.png (56 KB) - ściągnięć: 80
edytowany 1x, ostatnio: Arwena Marenwen
Arwena Marenwen
Arwena Marenwen
Nie koniecznie bede miec plik złożony z pojedyńczych linii do porównania z wzorcem
vpiotr
Przeciez to bedzie dramatycznie wolne w tej postaci.
Arwena Marenwen
Arwena Marenwen
Na szybkości mi nie zależy
lion137
@Arwena Marenwen: dział Python?
Pyxis
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 2 godziny
0

Jeszcze raz wytłumacz, czemu grep miałby się tutaj nie sprawdzić. Z Twojego komentarza tego nie zrozumiałem.

Arwena Marenwen
Arwena Marenwen
Podobno miało byc bez grep, ale jednak to użyłam teraz. Mam taki kod: ``` #!/bin/bash katalog=$1 slowo1=$2 slowo2=$3 ile=$(ls $katalog | wc -l) echo "$ile" tablica=(ls $katalog) echo "tablica:"${tablica[@]} grep -l $slowo1 ${tablica[@]} | grep -l $slowo2 I teraz grep nic mi nie wyświela. Co mam z tym zrobić? Jak ostatnia linijka wygląda tak: grep -l $slowo1 ${tablica[@]} | grep -l $slowo2 ${tablica[@]} ``` To wyświetla mi pliki tylko niekoniecznie te w których są oba szukane słowa tylko np. jedno z nich

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.