http://www.zago.eti.br/awk.txt FAQ, indicações e dicas sobre awk. Programação e ER (expressão regular), manipular string, numero, etc e tal. Use CTRL+F para refinar a pesquisa. Sobre o uso do awk com outras ferramentas pra uso na linha de comando, expressões regulares, shell script, modelos de scripts e etc... veja em: http://www.zago.eti.br/script/awk.html http://www.zago.eti.br/script/A-menu-scripts.html ******************************************************************** awk - Comandos Uteis (2) --------------------------------------------------------------------- Para se imprimir apenas o ultimo campo de um arquivo com o comando awk, podemos utilizar o comando: awk '{print $NF}' arquivo.exemplo A variavel NF significa numero de campos. Quando precedida por "$" indica o ultimo campo, a semelhanca de $1, $2, etc. Se quisermos imprimir a contagem do numero de campos de um arquivo: awk '{print NF}' arquivo.exemplo Se quisermos imprimir apenas as linhas que contenham mais de dez campos: awk -F: 'NF > 10 {print}' arquivo.exemplo Ou, se quisermos imprimir apenas as linhas que possuam exatamente 10 campos: awk -F: 'NF == 11 {print}' arquivo.exemplo Se quisermos imprimir apenas o segundo campo de registros que contenham a palavra teste: awk '/teste/ {print $2}' arquivo.exemplo E agora, o dever de casa, verificar que tudo o que eu falei funciona ;-) ******************************************************************** > Gostaria de saber se alguém já definiu um loop em awk que ao achar > determinada string, imprima duas linhas antes e duas linhas depois > da linha onde a string foi localizada. Acho que isso resolve: #!/usr/bin/awk -f n >= 4 { x[5] = x[4]; } n >= 3 { x[4] = x[3]; } n >= 2 { x[3] = x[2]; } n >= 1 { x[2] = x[1]; } { x[1] = $0; if ( n<=4 ) ++n; if (flag == 1) { while (n>0) print x[n--]; print ""; } if (flag>0) --flag; } /o que voce quer/ { if (flag > 0) { while (n>0) print x[n--]; print ""; } flag = 2; } END { if (flag > 0) { while (n>0) print x[n--]; print ""; } } ******************************************************************** > #/bin/marciogol > Para cada linha em ARQUIVO faça > script_em_perl $2 > script_em_bash $1 > Proxima linha > > , sendo que o arquivo encontra-se no formato > $1,$2 > $1,$2 > $1,$2 $1 e $2 podem ter espacos? Se não podem: cut -d, =2 {print $1; print $2}' Para: eduardo na internet Cc: lista do linux-br Assunto: Re: (linux-br) awk Data: 10 Jul 2002 14:19:24 -0300 AWK é uma ferramenta para manipulação de strings, ou seja dá pra você ler uma linha em um texto qualquer, dividir em campos, substituir, imprimir pra um arquivo, pra tela, etc. O Sed faz isso também, mas como não conheco legal o awk, não dá pra comparar os dois De qaulquer forma, segue um meioquetutorial via exemplos de awk: Divirta-se :-) www-106.ibm.com/developerworks/linux/ library/l-awk1.html?dwzone=linux Em Ter, 2002-07-09 às 11:32, eduardo na internet escreveu: > Alguem poderia me responder o que e para que serve este comando awk???? > > Se estiver errado me corrigem...... > > > -- Sergio Eduardo Felisbino Jr ----> BINO Analista Contato Global Solutions \^ ^/ Deb, CNC, Linux is the Best !! [o o] m \J/ m --------- Assinantes em 10/07/2002: 2230 Mensagens recebidas desde 07/01/1999: 174492 Historico e [des]cadastramento: http://linux-br.conectiva.com.br Assuntos administrativos e problemas com a lista: mailto:linux-br-owner@bazar.conectiva.com.br ******************************************************************** De: Alexandre Chaves Fonseca Para: eduardo na internet , lista do linux-br Assunto: Re: (linux-br) awk Data: 10 Jul 2002 18:14:42 -0300 > Alguem poderia me responder o que e para que serve este comando awk???? awk serve para vc manipular uma string, numero, etc e tal usando uma ER (expressão regular) ! ou melhor, ela é "uma" das ferramentas existentes para trabalhar com "Expressoes Regulares" (existem outras por exemplo o "sed"), muito úteis numa linguagem de programação ou meso na configuração de certos programas ! Enfim, as ER são usadas nos mais diferentes campos da ciencia. Se quiser saber mais, veja em: http://guia-er.sourceforge.net/ (esse é um guia muito bom, ensina do basicão ao super complexo) > Se estiver errado me corrigem...... errado onde ? ******************************************************************** De: dicas-l-owner@unicamp.br Assunto: [Dicas-L] awk: Backup de Arquivos Data: 21 Mar 2003 00:16:24 -0300 -------------------------------------------------------------------- Endereço: http://www.Dicas-l.com.br/dicas-l/20030321.shtml -------------------------------------------------------------------- Formatos de Arquivos da Internet - Guia de Consulta Rápida http://novateceditora.com.br/guias/formatosarq/ -------------------------------------------------------------------- awk: Backup de Arquivos ======================= Para fazer uma cópia backup de todos os arquivos determinado diretório, podemos fazer algo do tipo: % ls -l | awk '{print "cp",$9,$9 ".bck"}' > backup.sh E o conteúdo de backup.sh: cp arquivo_1.txt arquivo_1.txt.bck cp arquivo_2.txt arquivo_2.txt.bck cp arquivo_3.txt arquivo_3.txt.bck cp arquivo_4.txt arquivo_4.txt.bck cp arquivo_5.txt arquivo_5.txt.bck cp arquivo_6.txt arquivo_6.txt.bck cp arquivo_7.txt arquivo_7.txt.bck cp arquivo_8.txt arquivo_8.txt.bck cp arquivo_9.txt arquivo_9.txt.bck Basta então executar em seguida o script backup.sh. --------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 20941 assinantes. Todas as mensagens da Dicas-L ficam armazenadas em http://www.Dicas-l.com.br. ******************************************************************** De: AWK Para: Frederico Madeira , Linux - BR Assunto: Re: (linux-br) Dúvida shell [ Usando o AWK] Data: 11 Apr 2003 12:53:38 -0300 Oi Fred, você pode também usar o AWK... > > COmo poderia realizar as seguintes operações no shell: > > 1. Contar quantas linhas um determinado arquivo tem $ awk 'END {print NR}' arquivo.txt > > 2. Ler apenas uma determinada linha do arquivo Para ler apenas 30a. linha: $ awk 'NR == 30' arquivo.txt [ ]'s ******************************************************************** De: hamacker Para: AcDcP * LiNucS , linux-br Assunto: Re: (linux-br) VIm Editor - Como excluir uma coluna dum texto marcado ? Data: 09 Apr 2003 10:46:57 -0300 Rapaz, eu consigo fazer isso também com o cut, mas o problema é o seguinte, muitas vezes sou obrigado a trabalhar no windows e outras no linux. E no linux uso todos os comandos possiveis, mas quando passo para o windows tenho que usar ferramentas de windows para realizar a mesma tarefa, entao o que fiz ? Baixei o VI para o Windows, assim consigo usar uma mesma ferramenta nos dois ambientes, mas ta muito dificil, o help do VI nao ajuda muito. Já debulhei o VIM.ORG, google.com e ainda não encontrei como eliminar colunas num arquivo texto colunado. Se voce conhecer outro editor com recursos como este (para programacao) que seja linux/windows dá-me um aviso, ok ? inte+ AcDcP * LiNucS wrote: vc pode usar awk na linha de comando cat arquivo | awk "{ print \$3 \$5 }" > arquivo_novo ********************************************************************