RAC - Exemplos de Endereçamento

Esta é a "Central RAC de Atendimento ao Cliente" :), sua fonte definitiva de consulta em caso de dúvida. Aqui estão registrados exemplos de todas as funcionalidades do programa, antecipando problemas que o usuário possa vir a resolver com o RAC.

Resumão

Numérico
3 Linha A terceira linha
-3 Contagem Reversa A antepenúltima linha
[3] Coluna A terceira coluna
1:3 Trecho Da primeira a terceira linha
1~3 Salto Partindo da primeira linha, ande de 3 em 3
Texto
=abc= Texto Todas as linhas que contêm o texto abc
=abc=*3 Ocorrência Terceira linha que contém o texto abc
=abc=+3 Contexto Terceira linha após a que contém o texto abc
=abc=-3 Contexto Terceira linha anterior a que contém o texto abc
Expressões Regulares
/^abc/ Exp. Regular Todas as linhas que iniciam com abc
/^abc/*3 Ocorrência Terceira linha que inicia com abc
/^abc/+3 Contexto Terceira linha após a que inicia com abc
/^abc/-3 Contexto Terceira linha anterior a que inicia com abc

O Arquivo de Exemplo

$ cat n.txt
1:I
2:II
3:III
4:IV
5:V
6:VI
7:VI
8:VII
9:IX
$

Linhas

Posição

A primeira linha

1

Exemplo:

$ cat n.txt | rac '1'
1:I

A última linha

-1

Exemplo:

$ cat n.txt | rac '-1'
9:IX

A terceira linha

3

Exemplo:

$ cat n.txt | rac '3'
3:III

A antepenúltima linha

-3

Exemplo:

$ cat n.txt | rac '-3'
7:VII

A primeira, terceira e última linhas

1 ; 3 ; -1

Exemplo:

$ cat n.txt | rac '1;3;-1'
1:I
3:III
9:IX

A última, terceira e primeira linhas

-1 ; 3 ; 1

Exemplo:

$ cat n.txt | rac '-1;3;1'
9:IX
3:III
1:I

A terceira linha, três vezes

3 ; 3 ; 3

Exemplo:

$ cat n.txt | rac '3;3;3'
3:III
3:III
3:III

Trechos

Da primeira linha até a terceira

1 : 3

Exemplo:

$ cat n.txt | rac '1:3'
1:I
2:II
3:III

Da terceira linha até a primeira (reverso)

3 : 1

Exemplo:

$ cat n.txt | rac '3:1'
3:III
2:II
1:I

Da primeira linha até a última (todas)

1 : -1

Exemplo:

$ cat n.txt | rac '1:-1'
1:I
2:II
3:III
4:IV
5:V
6:VI
7:VI
8:VII
9:IX

Da terceira linha até a antepenúltima

3 : -3

Exemplo:

$ cat n.txt | rac '3:-3'
3:III
4:IV
5:V
6:VI
7:VI

Salto

Iniciando na primeira linha, ande de duas em duas (ímpares)

1 ~ 2

Exemplo:

$ cat n.txt | rac '1~2'
1:I
3:III
5:V
7:VI
9:IX

Iniciando na segunda linha, ande de duas em duas (pares)

2 ~ 2

Exemplo:

$ cat n.txt | rac '2~2'
2:II
4:IV
6:VI
8:VII

Iniciando na última linha, volte de duas em duas (ímpares, reverso)

-1 ~ -2

Exemplo:

$ cat n.txt | rac '-1~-2'
9:IX
7:VI
5:V
3:III
1:I

Iniciando na segunda linha, ande de três em três

2 ~ 3

Exemplo:

$ cat n.txt | rac '2~3'
2:II
5:V
8:VIII

Expressões Regulares

Ocorrência

Todas as linhas que casam com uma regex

/regex/

Exemplo:

$ cat n.txt | rac '/[0-9]/'
1:I
2:II
3:III
4:IV
5:V
6:VI
7:VII
8:VIII
9:IX

A primeira linha que casa com uma regex

/regex/ *1

Exemplo:

$ cat n.txt | rac '/[0-9]/*1'
1:I

A última linha que casa com uma regex

/regex/ *-1

Exemplo:

$ cat n.txt | rac '/[0-9]/*-1'
9:IX

A terceira linha que casa com uma regex

/regex/ *3

Exemplo:

$ cat n.txt | rac '/[0-9]/*3'
3:III

A antepenúltima linha que casa com uma regex

/regex/ *-3

Exemplo:

$ cat n.txt | rac '/[0-9]/*-3'
7:VII

Contexto

A linha seguinte às linhas que casam com uma regex

/regex/ +1

A linha anterior às linhas que casam com uma regex

/regex/ -1

A terceira linha após as linhas que casam com uma regex

/regex/ +3

A terceira linha anterior às linhas que casam com uma regex

/regex/ +3

Contexto e Ocorrência

A linha seguinte à primeira linha que casa com uma regex

/regex/ *1 +1

Exemplo:

$ cat n.txt | rac '/[0-9]/*1+1' 
2:II

A linha anterior à primeria linha que casa com uma regex

/regex/ *1 -1

A terceira linha após a primeira linha que casa com uma regex

/regex/ *1 +3

Exemplo:

$ cat n.txt | rac '/[0-9]/*1+3'
4:IV

A terceira linha anterior à primeira linha que casa com uma regex

/regex/ *1 -3

A linha seguinte à última linha que casa com uma regex

/regex/ *-1 +1

A linha anterior à última linha que casa com uma regex

/regex/ *-1 -1

Exemplo:

$ cat n.txt | rac '/[0-9]/*-1-1'
8:VIII

A terceira linha anterior à penúltima linha que casa com uma regex

/regex/ *-2 -3

Exemplo:

$ cat n.txt | rac '/[0-9]/*-2-3'
5:V

Ocorrência e Salto

Partindo da terceira linha que casa com uma regex, ande de 2 em 2 linhas

/regex/ *3 ~2

Exemplo:

$ cat n.txt | rac '/[0-9]/*3~2'
3:III
5:V
7:VII
9:IX

Partindo da terceira linha que casa com uma regex, volte de 2 em 2 linhas

/regex/ *3 ~-2

Exemplo:

$ cat n.txt | rac '/[0-9]/*3~-2'
3:III
1:I

Ocorrência, Contexto e Salto

Partindo da linha seguinte à terceira linha que casa com uma regex, ande de 2 em 2 linhas

/regex/ *3 +1 ~2

Exemplo:

$ cat n.txt | rac '/[0-9]/*3+1~2'
4:IV
6:VI
8:VIII

Partindo da linha anterior à antepenúltima linha que casa com uma regex, volte de 2 em 2 linhas

/regex/ *3 -1 ~-2

Exemplo:

$ cat n.txt | rac '/[0-9]/*-3-1~-2'
6:VI
4:IV
2:II

Trechos

Todas as linhas entre duas regexes, inclusive, todas as ocorrências

/regex1/ : /regex2/

Exemplo:

$ cat n.txt | rac '/[15]/:/[37]/'
1:I
2:II
3:III
5:V
6:VI
7:VII

Todas as linhas entre duas regexes, "exclusive", todas as ocorrências

/regex1/ +1 : /regex2/ -1

Exemplo:

$ cat n.txt | rac '/[15]/+1:/[37]/-1'
2:II
6:VI

Linhas do início do arquivo até encontrar a primeira ocorrência de uma regex

1 : /regex/ *1

Exemplo:

$ cat n.txt | rac '1:/[357]/*1'
1:I
2:II
3:III

Linhas do início do arquivo até encontrar a última ocorrência de uma regex

1 : /regex/ *-1

Exemplo:

$ cat n.txt | rac '1:/[357]/*-1'
1:I
2:II
3:III
4:IV
5:V
6:VI
7:VII

Linhas da primeira ocorrência de uma regex até o fim do arquivo

/regex/ *1 : -1

Exemplo:

$ cat n.txt | rac '/[357]/*1:-1'
3:III
4:IV
5:V
6:VI
7:VII
8:VIII
9:IX

Linhas da última ocorrência de uma regex até o fim do arquivo

/regex/ *-1 : -1

Exemplo:

$ cat n.txt | rac '/[357]/*-1:-1'
7:VII
8:VIII
9:IX

Todas as linhas entre duas regexes, inclusive, apenas a primeira ocorrência

/regex1/ *1 : /regex2/ *1

Exemplo:

$ cat n.txt | rac '/[15]/*1:/[37]/*1'
1:I
2:II
3:III

Todas as linhas entre duas regexes, inclusive, apenas a última ocorrência

/regex1/ *-1 : /regex2/ *-1

Exemplo:

$ cat n.txt | rac '/[15]/*-1:/[37]/*-1'
5:V
6:VI
7:VII

Todas as linhas entre duas regexes, "exclusive", apenas a primeira ocorrência

/regex1/ *1 +1 : /regex2/ *1 -1

Exemplo:

$ cat n.txt | rac '/[15]/*1+1:/[37]/*1-1'
2:II

Todas as linhas entre duas regexes, "exclusive", apenas a última ocorrência

/regex1/ *-1 +1 : /regex2/ *-1 -1

Exemplo:

$ cat n.txt | rac '/[15]/*-1+1:/[37]/*-1-1'
6:VI

Todas as linhas entre a primeira ocorrência de uma regex e a última de outra, inclusive

/regex1/ *1 : /regex2/ *-1

Exemplo:

$ cat n.txt | rac '/[15]/*1:/[37]/*-1'
1:I
2:II
3:III
4:IV
5:V
6:VI
7:VII

Todas as linhas entre a última ocorrência de uma regex e a primeira de outra, inclusive (e invertido!)

/regex1/ *-1 : /regex2/ *1

Exemplo:

$ cat n.txt | rac '/[15]/*-1:/[37]/*1'
5:V
4:IV
3:III