Skocz do zawartości

Zmienna Z Basha Do Awk


Thamiar

Rekomendowane odpowiedzi

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

$ 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

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

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ę...