Aprenda a usar variáveis awk, expressões numéricas e operadores de atribuição - Parte 8
- 4269
- 1002
- Randal Kuhlman
A série de comando AWK está ficando emocionante, acredito, nas sete partes anteriores, passamos por alguns fundamentos de Awk que você precisa dominar para permitir que você execute algum texto básico ou filtragem de strings no Linux.
Começando com esta parte, mergulharemos em áreas avançadas de Awk Para lidar com operações mais complexas de texto ou filtragem de cordas. Portanto, vamos cobrir Awk Recursos como variáveis, expressões numéricas e operadores de atribuição.
Aprenda variáveis awk, expressões numéricas e operadores de tarefasEsses conceitos não são de forma abrangente daqueles que você provavelmente pode ter encontrado em muitas linguagens de programação antes de tais shell, c, python, além de muitos outros, então não há necessidade de se preocupar muito com esse tópico, estamos simplesmente revisando as idéias comuns de usar esses recursos mencionados.
Este provavelmente será um dos mais fáceis Awk Seções de comando para entender, então sente -se e vamos começar.
1. Variáveis awk
Em qualquer linguagem de programação, uma variável é um suporte de local que armazena um valor, quando você cria uma variável em um arquivo de programa, à medida que o arquivo é executado, algum espaço é criado na memória que armazenará o valor que você especificará para a variável.
Você pode definir Awk Variáveis da mesma maneira que você define variáveis de shell da seguinte forma:
variable_name = value
Na sintaxe acima:
nome variável
: é o nome que você dá uma variávelvalor
: o valor armazenado na variável
Vejamos alguns exemplos abaixo:
computador_name = ”Tecmint.com ”port_no =” 22 ”email =” [email protegido] ”servidor =” Computer_name ”
Dê uma olhada nos exemplos simples acima, na primeira definição de variável, o valor Tecmint.com
é atribuído à variável nome do computador
.
Além disso, o valor 22
é atribuído à variável PORT_NO
, Também é possível atribuir o valor de uma variável a outra variável como no último exemplo em que atribuímos o valor de nome do computador
para o servidor variável.
Se você consegue se lembrar, desde a Parte 2 desta série AWK, onde abordamos a edição de campo, conversamos sobre como o AWK divide as linhas de entrada em campos e usa o operador de acesso de campo padrão, $
para ler os diferentes campos que foram analisados. Também podemos usar variáveis para armazenar os valores dos campos da seguinte maneira.
primeiro_name = $ 2 second_name = $ 3
Nos exemplos acima, o valor de primeiro nome
está definido para o segundo campo e segundo nome
está definido para o terceiro campo.
Como ilustração, considere um arquivo nomeado nomes.TXT
que contém uma lista dos usuários de um aplicativo indicando seu primeiro e sobrenome mais gênero. Usando o comando CAT, podemos visualizar o conteúdo do arquivo da seguinte forma:
$ nomes de gatos.TXTListar o conteúdo do arquivo usando o comando CAT
Então, também podemos usar as variáveis primeiro nome
e segundo nome
para armazenar o primeiro e o segundo nomes do primeiro usuário na lista, executando o Awk Comando abaixo:
$ awk '/aaron/primeiro_name = $ 2; Second_name = $ 3; Imprima First_Name, Second_Name; 'nomes.TXTArmazenar variáveis usando o comando AWK
Vamos também dar uma olhada em outro caso, quando você emite o comando uname -a
No seu terminal, ele imprime todas as informações do seu sistema.
O segundo campo contém seu nome de anfitrião
, Portanto, podemos armazenar o nome de anfitrião em uma variável chamada nome de anfitrião
e imprimi -lo usando Awk do seguinte modo:
$ uname -a $ uname -a | awk 'hostName = $ 2; Print hostName; 'Armazenar saída de comando para variável usando awk
2. Expressões numéricas
Em Awk, Expressões numéricas são construídas usando os seguintes operadores numéricos:
*
: Operador de multiplicação+
: Operador de adição/
: Operador de divisão-
: Operador de subtração%
: Operador de módulo^
: Operador de exponenciação
A sintaxe para expressões numéricas é:
$ operand1 operador operand2
Na forma acima, operand1
e operand2
pode ser números ou nomes de variáveis e operador
está qualquer um dos operadores acima.
Abaixo estão alguns exemplos para demonstrar como criar expressões numéricas:
contador = 0 num1 = 5 num2 = 10 num3 = num2-num1 contador = contador+1
Para entender o uso de expressões numéricas em Awk, Consideraremos o seguinte exemplo abaixo, com o arquivo domínios.TXT
que contém todos os domínios de propriedade de Tecmint.
notícias.Tecmint.com Tecmint.com Linuxsay.com janelas.Tecmint.com Tecmint.com notícias.Tecmint.com Tecmint.com Linuxsay.com Tecmint.com notícias.Tecmint.com Tecmint.com Linuxsay.com janelas.Tecmint.com Tecmint.com
Para visualizar o conteúdo do arquivo, use o comando abaixo:
$ CAT domínios.TXTVisualizar o conteúdo do arquivo
Se queremos contar o número de vezes o domínio Tecmint.com
Aparece no arquivo, podemos escrever um script simples para fazer isso da seguinte forma:
#!/BIN/BASH para arquivo em [email protegido]; faça se [-f $ arquivo]; Em seguida, o arquivo #print out filename echo "é: $ arquivo" #print um número incrementalmente para cada linha que contém o tecmint.com Awk '/^Tecmint.com/ contador = contador+1; printf "%s \ n", contador; '$ arquivo else #Print Error Info Incase A entrada não é um arquivo de eco "$ não é um arquivo, especifique um arquivo."> & 2 && Sair 1 fi feito #script de terminação com o código de saída 0 no caso de saída de execução bem -sucedida 0Script shell para contar uma string ou texto no arquivo
Depois de criar o script, salve -o e torne -o executável, quando o executarmos com o arquivo, domínios.TXT
Como entrada, obtemos a seguinte saída:
$ ./roteiro.sh ~/domínios.TXTScript para contar string ou texto
A partir da saída do script, existem 6 linhas no arquivo domínios.TXT
Que contêm Tecmint.com
, para confirmar que você pode contá -los manualmente.
3. Operadores de atribuição
O último Awk Recurso que abordaremos são operadores de atribuição, existem vários operadores de tarefas em AWK e incluem o seguinte:
*=
: Operador de atribuição de multiplicação+=
: Operador de atribuição de adição/=
: Operador de atribuição de divisão-=
: Operador de atribuição de subtração%=
: Operador de atribuição de módulo^=
: Operador de atribuição de exponenciação
A sintaxe mais simples de uma operação de atribuição em Awk é o seguinte:
$ variable_name = variable_name operador operando
Exemplos:
contador = 0 contador = contador+1 num = 20 num = num-1
Você pode usar os operadores de atribuição acima para reduzir as operações de atribuição em Awk, Considere os exemplos anteriores, poderíamos executar a tarefa na seguinte forma:
Variable_name Operator = operando
contador = 0 contador+= 1 num = 20 num- = 1
Portanto, podemos alterar o Awk comando no script do shell que acabamos de escrever acima usando +=
Operador de atribuição da seguinte forma:
#!/BIN/BASH para arquivo em [email protegido]; faça se [-f $ arquivo]; Em seguida, o arquivo #print out filename echo "é: $ arquivo" #print um número incrementalmente para cada linha que contém o tecmint.com Awk '/^Tecmint.com/ contador+= 1; printf "%s \ n", contador; '$ arquivo else #Print Error Info Incase A entrada não é um arquivo de eco "$ não é um arquivo, especifique um arquivo."> & 2 && Sair 1 fi feito #script de terminação com o código de saída 0 no caso de saída de execução bem -sucedida 0Alterar script de shell
Neste segmento da série AWK, cobrimos alguns poderosos Awk Recursos, que são variáveis, construindo expressões numéricas e usando operadores de atribuição, além de algumas ilustrações de como podemos realmente usá -las.
Esses conceitos não são diferentes dos de outras linguagens de programação, mas pode haver algumas distinções significativas sob programação AWK.
Em Parte 9, Vamos olhar para mais Awk Recursos que são padrões especiais: COMEÇAR
e FIM
. Até então, fique conectado a Tecmint.
- « 8 melhores gravadores de tela para gravação de tela de desktop no Linux
- 15 dicas e truques de comando 'sed' úteis para tarefas diárias de administração do sistema Linux »