Exemplo 1: Imprima uma variedade de colunas de uma saída de comando
O comando a seguir imprimirá a segunda, terceira e quarta colunas da saída do comando, 'ls -l'. Aqui, os números da coluna são declarados explicitamente, mas um comando mais eficiente para imprimir o mesmo intervalo de colunas é mostrado no próximo exemplo.
$ ls -l | awk 'print $ 2, $ 3, $ 4'
A seguinte saída é produzida pelo comando acima.
Exemplo 2: Imprima a gama de colunas de um arquivo usando um para laço
Para acompanhar este exemplo e os outros exemplos deste tutorial, crie um arquivo de texto chamado Marcas.TXT com o seguinte conteúdo:
ID CSE203 CSE102 CSE202
1109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58
O seguinte comando 'awk' imprimirá as três primeiras colunas de marcas.TXT. O para O loop é usado para imprimir os valores da coluna e o loop inclui três etapas. O Nf A variável indica o número total de campos ou colunas do arquivo.
$ Cat Marks.TXT
$ awk 'para (i = 1; i<=NF-1;i++) printf $i" "; print ""' marks.txt
A saída a seguir será produzida executando o comando. A saída mostra o aluno Ids e as marcas para CSE203 e CSE102.
Exemplo 3: Imprima o intervalo de colunas, definindo variáveis iniciais e finais
O seguinte comando 'awk' imprimirá as três primeiras colunas da saída de comando 'ls -l', inicializando o iniciando e final variáveis. Aqui, o valor do iniciando variável é 1 e o valor do final A variável é 3. Essas variáveis são iteradas em um loop para imprimir os valores da coluna.
$ ls -l | awk 'Begin primeiro = 1; último = 3
for (i = primeiro; i < last; i++) printf("%s ", $i) print $last '
A saída a seguir aparecerá após a execução do comando. A saída mostra os três primeiros valores da coluna da saída, 'ls -l'.
Exemplo 4: Imprima uma variedade de colunas de um arquivo com formatação
O seguinte comando 'awk' imprimirá as três primeiras colunas de Marcas.TXT usando printf e separador de campo de saída (OFS). Aqui, o loop for três etapas e três colunas serão impressas em sequência do arquivo. OFS é usado aqui para adicionar espaço entre colunas. Quando o valor do contador do loop (i) é igual ao final variável, então uma nova linha (\ n) é gerada.
$ Cat Marks.TXT
$ awk -v start = 1 -v end = 3 'for (i = start; i i<=end;i++) printf("%s%s",
$ i, (i == final) ? "\ n": ofs) 'marcas.TXT
A saída a seguir será gerada após a execução dos comandos acima.
Exemplo 5: Imprima o intervalo de colunas de um arquivo usando uma instrução condicional
O seguinte comando 'awk' imprimirá as primeiras e as últimas colunas de um arquivo usando um loop para loop e um IF. Aqui, o loop for quatro etapas. O iniciando e final Variáveis são usadas no script para omitir a segunda e a terceira colunas do arquivo usando a condição se. A variável OFS é usada para adicionar espaço entre as colunas, e a variável ORS é usada para adicionar uma nova linha (\ n) após a impressão da última coluna.
$ Cat Marks.TXT
$ awk -v start = 2 -v end = 3 'for (i = 1; i i<=NF;i++)
if (i> = start && i<=end) continue;
else printf ("%s%s", $ i, (eu!= Nf) ? OFS: Ors) 'Marcas.TXT
A saída a seguir aparecerá após a execução dos comandos acima. A saída mostra a primeira e a última colunas de marcas.TXT.
Exemplo 6: Imprima o intervalo de colunas de um arquivo usando a variável NF
O seguinte comando 'awk' imprimirá as primeiras e as últimas colunas do arquivo usando uma variável NF. Nenhuma loops ou declarações condicionais é usada para imprimir os valores da coluna. NF indica o número de campos. Existem quatro colunas em marcas.TXT. $ (NF-3) define a primeira coluna e $ nf indica a última coluna.
$ Cat Marks.TXT
$ awk 'print $ (nf-3) "" $ nf' marcas.TXT
A saída a seguir é produzida executando os comandos acima. A saída mostra a primeira e a última colunas de marcas.TXT.
Exemplo 7: Imprima o intervalo de colunas de um arquivo usando substr () e index ()
A função Index () retorna uma posição se o segundo valor de argumento existir no primeiro valor de argumento. A função substr () pode levar três argumentos. O primeiro argumento é um valor de string, o segundo argumento é a posição inicial e o terceiro argumento é o comprimento. O terceiro argumento de substr () é omitido no comando a seguir. Como a coluna começa a partir de US $ 1 no comando 'awk', a função Index () retornará US $ 3 e o comando imprimirá de US $ 3 para US $ 4.
$ Cat Marks.TXT
$ AWK 'Print Substr ($ 0, índice ($ 0, $ 3))' Marcas.TXT
A saída a seguir será produzida executando os comandos acima.
Exemplo 8: Imprima sequencialmente uma variedade de colunas de um arquivo usando printf
O comando 'Awk' a seguir imprimirá as primeiras, segundo e terceiras colunas de marcas.txt ao definir espaço suficiente para 10 caracteres.
$ Cat Marks.TXT
$ awk '// printf " %10s %10s %10s \ n", $ 1, $ 3, $ 2' Marcas.TXT
A saída a seguir será produzida executando os comandos acima.
Conclusão
Existem várias maneiras de imprimir o intervalo de colunas da saída de comando ou um arquivo. Este tutorial mostra como o comando 'awk' pode ajudar os usuários do Linux a imprimir conteúdo a partir de dados tabulares.