[Resolvido] Problema a usar awk em shell script

Iniciado por ascc, 12 de Março de 2010, 21:23

tópico anterior - próximo tópico

ascc

boa noite!

estou a fazer um programa em bash script e deparei-me com um probleminha
que nao estou a conseguir resolver

awk -F"|" '{if ($1 != "asdasd") print $0}' file1.txt

este comando acima funciona para o que eu quero mas precisava de lhe fazer uma alteraçao, era substituir  o asdasd
por uma variavel que recebe um valor inserido pelo utilizador com um read

ja andei a pesquisar e podemos atribuir uma variavel com a opçao -v mas ao introduzir o -v a opçao -F deixa de funcionar

exemplo:

este comando assim ja nao funciona

echo "Insira variavel!"
read variavel
awk -v m=$variavel -F"|" '{if ($1 != "m") print $0}' file1.txt

                     
se alguem souber resolver o meu probleminha agradecia sei que nao deve ser complicado resolver para quem
sabe mas ja ando de volta disto a algum tempo e nada nao consigo encontrar a soluçao
tambem sou principiante em bash shell


cumprimentos!
ascc

danpos

@ascc

Para fazer a comparação você tem que acessar o conteúdo da variável m, através do operando $:

awk -v m=$variavel -F="|" '{if ($1 != "$m") print $0}' file1.txt

Danpos

ascc

#2
problema resolvido é sempre a mesma coisa xD, quando se tem um problema
em programaçao e nao se consegue resolver, lol a melhor coisa a fazer é deixar o programa

            quando voltamos a pegar no programa consegue-se resolver logo

soluçao:

awk -v m="$variavel" -F"|"  '{if ($1 == m) print $0}' carros.txt

obriado Danpos embora essa dica nao esta certa, ajudou-me a pensar e a descobrir o erro