awk - obtém entrada do arquivo e do STDIN?

2

É possível obter entrada do arquivo e do terminal? Desejo perguntar ao usuário algo na parte END do script awk.

Essa entrada deve ser digitada pelo usuário e não ser lida no arquivo que continha os dados a serem processados.

END {
  getline choice
  if(choice == "Y")
    print "OK"
}

Mas a escolha é lida no arquivo de entrada.

    
por learner 12.11.2012 / 16:50

2 respostas

5

Você pode ler em /dev/tty ou em /dev/stdin .

getline choice < "/dev/tty"

/dev/tty é bastante onipresente (mesmo um dos poucos, junto com /dev/null e /dev/console a serem exigidos pelo POSIX), /dev/stdin é menos comum, mas pelo menos o GNU awk reconheceria como significando stdin mesmo que o sistema não tenha tal dispositivo / arquivo especial.

    
por 12.11.2012 / 16:59
1

Como pode ser visto , - também funciona:

getline < "-"

Ou

getline variable < "-"
    
por 29.08.2015 / 23:01

Tags