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
O Arquivo de Exemplo
Linhas
Expressões Regulares
Ocorrência
Contexto
Contexto e Ocorrência
Ocorrência e Salto
Ocorrência, Contexto e Salto
Trechos
Todas as linhas entre duas regexes, inclusive, todas as ocorrências
Todas as linhas entre duas regexes, "exclusive", todas as ocorrências
Linhas do início do arquivo até encontrar a primeira ocorrência de uma regex
Linhas do início do arquivo até encontrar a última ocorrência de uma regex
Linhas da primeira ocorrência de uma regex até o fim do arquivo
Linhas da última ocorrência de uma regex até o fim do arquivo
Todas as linhas entre duas regexes, inclusive, apenas a primeira ocorrência
Todas as linhas entre duas regexes, inclusive, apenas a última ocorrência
Todas as linhas entre duas regexes, "exclusive", apenas a primeira ocorrência
Todas as linhas entre duas regexes, "exclusive", apenas a última ocorrência
Todas as linhas entre a primeira ocorrência de uma regex e a última de outra, inclusive
Todas as linhas entre a última ocorrência de uma regex e a primeira de outra, inclusive (e invertido!)
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