Autor Tópico: [Resolvido] Problema a usar awk em shell script  (Lida 4573 vezes)

Offline ascc

  • Usuário Ubuntu
  • *
  • Mensagens: 2
    • Ver perfil
[Resolvido] Problema a usar awk em shell script
« Online: 12 de MAR?O de 2010, 21:23 »
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
« Última modificação: 13 de MAR?O de 2010, 20:48 por ascc »

Offline danpos

  • Usuário Ubuntu
  • *
  • Mensagens: 386
    • Ver perfil
Re: Problema a usar awk em shell script
« Resposta #1 Online: 13 de MAR?O de 2010, 19:32 »
@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

Offline ascc

  • Usuário Ubuntu
  • *
  • Mensagens: 2
    • Ver perfil
Re: Problema a usar awk em shell script
« Resposta #2 Online: 13 de MAR?O de 2010, 20:46 »
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
« Última modificação: 13 de MAR?O de 2010, 20:54 por ascc »