Thamiar Napisano Czerwiec 13, 2011 Zgłoszenie Share Napisano Czerwiec 13, 2011 Mam nadzieje, ze nikt nie bedzie mial mi za zle z powodu kolejnego tematu. Otóz mam nastepujacy problem: Posiadam zmienna $nazwa, której chcialbym uzyc w awk. cat lista | awk ' $1 == $nazwa {print $0}' Ma znalezc w pliku lista wiersze zaczynajace sie od $nazwy i wyswietlic je na ekranie. Niestety, nie wiem jak wsadzic tam $nazwe z basha. Poswiecilem sporo czasu na szukanie. Wiem, ze powinna odpowiadac za to zmienna -v (variables) Wedlug instrukcji kod awk -v nazwa="$nazwa" '{if ($1 == nazwa ) print $1 }' cat lista | awk nazwa="$nazwa" '$1 == nazwa {print $0}' powinien dzialac, ale po odpaleniu program po prostu wegetuje (Nie wylacza sie, ale nic sie nie dzieje.) Powyzszy sposób byl najbardziej popularny z tych które znalazlem, ale jak pisalem w moim przypadku po prostu nei dziala. Znalazlem równiez awk "(\$1==$nazwa) {print \$0} Efekt podobny. Na jakiejs stronie znalazlem tez dwa inne rozwiazania (Chociaz w ogóle nie rozumiem zasady ich dzialania.) awk '{print v1, v2}' v1=$VAR1 file1 v2=$VAR2 file2 awk '{print "'"$VAR1"'", "'"$VAR2"'"}' input_file Gdyby ktos mi pomógl, powiedzial co robie zle, bylbym nieslychanie wdzieczny. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Czerwiec 13, 2011 Zgłoszenie Share Napisano Czerwiec 13, 2011 $ cat lista A 1 A 2 B 3 C 4 A 3 $ export LISTA=A $ awk -v zmienna=$LISTA '{ if ($1==zmienna) print $0 }' lista Jak wstawić "A" do zmiennej, jak ustawić to w skrypcie bash itp, to chyba dasz radę? Rzut na taśmę przed końcem roku? To nie jest forum "pomagamy się uczyć", więc nie nadużywaj cierpliwości, bo to już kolejny Twój post z praca domową. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
alkuzad Napisano Czerwiec 13, 2011 Zgłoszenie Share Napisano Czerwiec 13, 2011 A czemu akurat awk skoro "grep" tez odnajdzie wszystkie linie zaczynajace sie od zmiennej i ma latwiejsza skladnie ? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
esail Napisano Czerwiec 13, 2011 Zgłoszenie Share Napisano Czerwiec 13, 2011 Bo to zadanie domowe i pewnie w tresci byl wymog uzycia awk. Z grepem faktycznie byloby lepiej ale punktow nie dostaniesz. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
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ę