RAC

Abril, 2005

NOME

rac - Rows And Columns, ferramenta para extração de textos

SINOPSE

rac [OPÇÕES] ENDEREÇO [ARQUIVO]

DESCRIÇÃO

O rac é uma ferramenta GPL para a extração de textos. Ele lê um arquivo (ou STDIN) e retorna o texto que casa com o endereço especificado. Este endereço é composto por linhas, colunas ou uma combinação de ambos. Diferente de outras ferramentas UNIX, o rac é orientado por caracteres, e não linhas.

Intervalos, contador reverso, saltos (step) e repetição são permitidos. O endereço '1; 3; 5:7; 1; 6:4; -1' aplicado em um arquivo de 10 linhas retorna as seguintes linhas: 1 3 5 6 7 1 6 5 4 10 (a ordem é preservada).

Além de especificação direta pelo número da linha, também é possível endereçar linhas por seu conteúdo, procurando por textos (strings) ou por expressões regulares (regex). Para mostrar as linhas que contenham a palavra "root" basta fazer "=root=". Para mostras as linhas que se iniciam por números basta fazer "/^[0-9]/".

É útil para extrair quaisquer linhas e/ou colunas de um texto, ou intervalos complicados como: da linha 10 coluna 13 até a linha 15 coluna 4. Visite a página do programa em: http://aurelio.net/rac.

OPÇÕES

-b, --bre
Usa a notação antiga para expressões regulares (BRE). Por padrão o RAC usa a notação moderna (ERE) onde nenhum metacaractere precisa ser escapado para ser especial. A notação antiga é a mesma do grep, AWK e SED, onde alguns metacaracteres são escapados: \+ \? \{\} \(\) \|.

-h, --help
Mostra a tela de ajuda do programa.

-i, --ignore-case
Trata maiúsculas e minúsculas como iguais. Com esta opção não importa se o texto pesquisado está escrito com letras maiúsculas ou minúsculas, é indiferente. Assim, os endereços =Rock= e /rock/ mostrarão uma linha que possua o texto ROCK.

-V, --version
Mostra a versão do programa.

Se omitido o nome do arquivo ou usado '-', o texto será lido da entrada padrão (STDIN).

EXEMPLOS

Mostra a terceira linha
$ rac '3' arquivo.txt

Mostra da terceira linha até a quinta linha, incluindo
$ rac '3:5' arquivo.txt

Mostra a última linha (tail -1)
$ rac '-1' arquivo.txt

Mostra as últimas 10 linhas (tail)
$ rac '-10:-1' arquivo.txt

Mostra as primeiras 10 colunas de cada linha (cut -c1-10)
$ rac '[1:10]' arquivo.txt

Mostra o último caractere de cada linha
$ rac '[-1]' arquivo.txt

Inverte as linhas do arquivo (tac)
$ rac '-1:1' arquivo.txt

Inverte as colunas das linhas (rev)
$ rac '[-1:1]' arquivo.txt

Linhas que contêm a palavra root (grep)
$ rac '=root=' arquivo.txt

A segunda linha após a que contém root
$ rac '=root=+2' arquivo.txt

A segunda linha anterior a que contém root
$ rac '=root=-2' arquivo.txt

A terceira linha que contém root
$ rac '=root=*3' arquivo.txt

A penúltima linha que contém root
$ rac '=root=*-2' arquivo.txt

Partindo da 1a linha com root, volte de 2 em 2
$ rac '=root=*1~-2' arquivo.txt

Partindo da 1a linha que se inicia com root, volte de 2 em 2
$ rac '/^root/*1~-2' arquivo.txt

SINTAXE

      N          A linha número N
     [N]         A coluna número N
  
    N;M;I        As linhas N, M e I
   [N,M,I]       As colunas N, M e I
  
     N:M         Da linha N até a linha M
    [N:M]        Da coluna N até a coluna M
  N[M]:I[J]      Da linha N coluna M até a linha I coluna J
  
     N~M         Começa na linha N, saltando M linhas
    [N~M]        Começa na coluna N, saltando M colunas
  
    =T=          Linhas que contêm o texto T
    =T=+N        N-ésima linha após a que contém T
    =T=-N        N-ésima linha anterior a que contém T
    =T=*N        N-ésima linha que contêm T
    =T=*N~M      N-ésima linha com T, então ande de M em M
  
    /E/          Linhas que casam com a expressão regular E
    /E/+N        N-ésima linha após a que casa com E
    /E/-N        N-ésima linha anterior a que casa com E
    /E/*N        N-ésima linha que casa com E
    /E/*N~M      N-ésima linha que casa com E, então ande de M em M
  
      ;          Separador de endereços
  

Se o número for negativo, começa contando da última linha/coluna.

AUTORES

Aurélio Marinho Jargas <<verde (a) aurelio net>> e Thobias Salazar Trevisan <<thobias (a) thobias org>>

COPYRIGHT

Copyright © 2003, 2004, 2005 Aurélio Marinho Jargas, Thobias Salazar Trevisan

Este é um software livre. Veja o fonte para as condições de cópia. NÃO há garantia nem mesmo de COMERCIALIZAÇÃO ou de APLICABILIDADE PARA UM USO ESPECÍFICO.