Pesquisa de site

Como analisar o arquivo delimitado por tabulações usando `awk`


`tab` é usado como um separador no arquivo delimitado por tabulações. Este tipo de arquivo de texto é criado para armazenar vários tipos de dados de texto em um formato estruturado. Existem diferentes tipos de comando no Linux para analisar esse tipo de arquivo. O comando `awk` é uma das maneiras de analisar o arquivo delimitado por tabulações de maneiras diferentes. Os usos do comando `awk` para ler o arquivo delimitado por tabulações foram mostrados neste tutorial.

Crie um arquivo delimitado por tabulações:

Crie um arquivo de texto chamado users.txt com o seguinte conteúdo para testar os comandos deste tutorial. Este arquivo contém o nome do usuário, e-mail, nome de usuário e senha.

users.txt

Name                Email                        Username               Password

Md. Robin          robin@gmail.com               robin89                563425

Nila Hasan         nila@gmail.com                nila78                 245667

Mirza Abbas        mirza@gmail.com               mirza23                534788

Aornob Hasan       aornob@gmail.com              arnob45                778473

Nuhas Ahsan        nuhas@gmail.com               nuhas34                563452

Exemplo-1: imprima a segunda coluna de um arquivo delimitado por tabulações usando a opção -F

O seguinte comando `sed` imprimirá a segunda coluna de um arquivo de texto delimitado por tabulações. Aqui, a opção '-F' é usada para definir o separador de campo do arquivo.

$ cat users.txt

$ awk -F '\t' '{print $2}' users.txt

Exemplo-2: Imprima a primeira coluna de um arquivo delimitado por tabulações usando a variável FS

O seguinte comando `sed` imprimirá a primeira coluna de um arquivo de texto delimitado por tabulações. Aqui, a variável FS ( Separador de Campo) é usada para definir o separador de campo do arquivo.

$ cat users.txt

$ awk '{ print $1 }' FS='\t' users.txt

Exemplo-3: imprimir a terceira coluna de um arquivo delimitado por tabulações com formatação

O comando `sed` a seguir imprimirá a terceira coluna do arquivo de texto delimitado por tabulações com formatação usando a variável FS printf. Aqui, a variável FS é usada para definir o separador de campo do arquivo.

$ cat users.txt

$ awk 'BEGIN{FS="\t"} {printf "%10s\n", $3}' users.txt

A saída a seguir aparecerá após a execução dos comandos. A terceira coluna do arquivo contém o nome de usuário que foi impresso aqui.

Exemplo-4: Imprima a terceira e a quarta colunas do arquivo delimitado por tabulações usando OFS

OFS (Output Field Separator) é usado para adicionar um separador de campo na saída. O seguinte comando `awk` dividirá o conteúdo do arquivo com base no separador tab( ) e imprimirá a 3ª e a 4ª colunas usando o tab( ) como separador.

$ cat users.txt

$ awk -F "\t" 'OFS="\t" {print $3, $4 > ("output.txt")}' users.txt

$ cat output.txt

A seguinte saída aparecerá depois de executar os comandos acima. A 3ª e a 4ª colunas contêm o nome de usuário e a senha, que foram impressos aqui.

Exemplo-5: Substitua o conteúdo específico do arquivo delimitado por tabulações

A função sub() é usada no `awk para comandar a substituição. O seguinte comando `awk` irá procurar o número 45 e substituí-lo pelo número 90 se o número de busca existir no arquivo. Após a substituição, o conteúdo do arquivo será armazenado no arquivo output.txt.

$ cat users.txt

$ awk  -F "\t"'{sub(/45/,90);print}' users.txt > output.txt

$ cat output.txt

Exemplo-6: Adicionar string no início de cada linha de um arquivo delimitado por tabulações

A seguir, no comando `awk`, a opção ‘-F’ é utilizada para dividir o conteúdo do arquivo com base na tabulação ( ). OFS costumava adicionar uma vírgula (,) como um separador de campo na saída. A função sub() é usada para adicionar a string ‘—→’ no início de cada linha da saída.

$ cat users.txt

$ awk -F "\t" '{{OFS=","};sub(/^/, "---->");print $1,$2,$3}' users.txt

Exemplo-7: Substitua o valor de um arquivo delimitado por tabulações usando a função gsub()

A função gsub() é usada no comando `awk` para substituição global. Todos os valores de string do arquivo serão substituídos onde o padrão de pesquisa corresponder. A principal diferença entre as funções sub() e gsub() é que a função sub() interrompe a tarefa de substituição após encontrar a primeira correspondência, e a função gsub() procura o padrão no final do arquivo para substituição. O comando `awk` a seguir pesquisará a palavra 'nila' e 'Mira' globalmente no arquivo e substituirá todas as ocorrências pelo texto, 'Nome inválido', onde a palavra pesquisada corresponder.

$ cat users.txt

$ awk  -F ‘\t’ '{gsub(/nila|Mira/, "Invalid Name"); print}' users.txt

A seguinte saída aparecerá depois de executar os comandos acima. A palavra 'nila' existe duas vezes na 3ª linha do arquivo que foi substituída pela palavra 'Nome inválido' na saída.

Exemplo-8: Imprimir o conteúdo formatado de um arquivo delimitado por tabulações

O seguinte comando `awk` imprimirá a primeira e a segunda colunas do arquivo com formatação usando printf. A saída mostrará o nome do usuário colocando o endereço de e-mail entre colchetes.

$ cat users.txt

$ awk -F '\t' '{printf "%s(%s)\n", $1,$2}' users.txt

Conclusão

Qualquer arquivo delimitado por tabulação pode ser facilmente analisado e impresso com outro delimitador usando o comando `awk`. As formas de analisar arquivos delimitados por tabulações e imprimir em diferentes formatos foram mostradas neste tutorial usando vários exemplos. Os usos das funções sub() e gsub() no comando `awk` para substituir o conteúdo do arquivo delimitado por tabulações também são explicados neste tutorial. Espero que este tutorial ajude os leitores a analisar o arquivo delimitado por tabulação facilmente depois de praticar os exemplos deste tutorial corretamente.

Artigos relacionados: