Exemplos valem mais do que mil páginas de manual. Este é o arquivo de texto que todos os exemplos seguintes usarão:
$ cat num.txt 1:um :one :uno :ein 2:dois :two :dos :zwei 3:três :three:tres :drei 4:quatro:four :cuatro:vier 5:cinco :five :cinco :fünf 6:seis :six :seis :sechs 7:sete :seven:siete :sieben 8:oito :eight:ocho :acht 9:nove :nine :nueve :neun
Agora alguns exemplos de endereçamento de linhas:
# Somente a linha 4 $ cat num.txt | rac '4' 4:quatro:four :cuatro:vier # As linhas 4, 7 e 2, nesta ordem $ cat num.txt | rac '4;7;2' 4:quatro:four :cuatro:vier 7:sete :seven:siete :sieben 2:dois :two :dos :zwei # A linha 4, três vezes $ cat num.txt | rac '4;4;4' 4:quatro:four :cuatro:vier 4:quatro:four :cuatro:vier 4:quatro:four :cuatro:vier # Da linha 4 até a linha 6 $ cat num.txt | rac '4:6' 4:quatro:four :cuatro:vier 5:cinco :five :cinco :fünf 6:seis :six :seis :sechs # Da linha 6 até a linha 4 (inverso!) $ cat num.txt | rac '6:4' 6:seis :six :seis :sechs 5:cinco :five :cinco :fünf 4:quatro:four :cuatro:vier # Da linha 8 até a última linha $ cat num.txt | rac '8:-1' 8:oito :eight:ocho :acht 9:nove :nine :nueve :neun # Da última à antepenúltima linha (inverso!) $ cat num.txt | rac '-1:-3' 9:nove :nine :nueve :neun 8:oito :eight:ocho :acht 7:sete :seven:siete :sieben # Do início até a terceira linha $ cat num.txt | rac ':3' 1:um :one :uno :ein 2:dois :two :dos :zwei 3:três :three:tres :drei
Para colunas é bem parecido, basta colocar entre colchetes:
# Da coluna 2 até a coluna 9 $ cat num.txt | rac '[2:9]' :um : :dois : :três : :quatro: :cinco : :seis : :sete : :oito : :nove : # Da coluna 23 até o final da linha $ cat num.txt | rac '[23:]' ein zwei drei vier fünf sechs sieben acht neun # A linha 7, da coluna 3 até a coluna 6 $ cat num.txt | rac '7[3:6]' sete # A linha 7 de trás para frente $ cat num.txt | rac '7[-1:1]' nebeis: eteis:neves: etes:7 # Da col. 15 da linha 7 à col. 15 da linha 9 $ cat num.txt | rac '7[15]:9[15]' :siete :sieben 8:oito :eight:ocho :acht 9:nove :nine : # A linha 7, vários cortes $ cat num.txt | rac '7[16:21,3:7,23:,2,1]' siete sete sieben:7
Textos! Tudo fica mais interessante endereçando por textos (strings):
# Linhas que contêm a palavra sete $ cat num.txt | rac '=sete=' 7:sete :seven:siete :sieben # A segunda linha após a que contém sete $ cat num.txt | rac '=sete=+2' 9:nove :nine :nueve :neun # A segunda linha anterior a que contém sete $ cat num.txt | rac '=sete=-2' 5:cinco :five :cinco :fünf # A terceira linha que contém dois-pontos $ cat num.txt | rac '=:=*3' 3:três :three:tres :drei # A penúltima linha que contém dois-pontos $ cat num.txt | rac '=:=*-2' 8:oito :eight:ocho :acht # Partindo da 1a linha com sete, ande de 1 em 1 $ cat num.txt | rac '=sete=*1~1' 7:sete :seven:siete :sieben 8:oito :eight:ocho :acht 9:nove :nine :nueve :neun # Partindo da 1a linha com sete, volte de 2 em 2 $ cat num.txt | rac '=sete=*1~-2' 7:sete :seven:siete :sieben 5:cinco :five :cinco :fünf 3:três :three:tres :drei 1:um :one :uno :ein
Além dos exemplos, aqui vai uma representação colorida das áreas que os comandos listados abaixo representam num suposto arquivo de 9x9 (9 linhas com 9 colunas cada).
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
1 | . | . | . | . | . | . | . | 1 | ||
2 | . | . | . | . | . | 2 | ||||
3 | . | . | . | . | . | 3 | ||||
4 | . | . | . | . | . | . | . | . | 4 | |
5 | 5 | |||||||||
6 | . | . | . | . | . | . | . | . | 6 | |
7 | . | . | . | . | 7 | |||||
8 | . | . | . | . | . | . | . | . | 8 | |
9 | . | . | . | . | 9 | |||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Endereço | ID | Descrição |
---|---|---|
5 |
Quinta linha | |
[5] |
Quinta coluna | |
1[1] |
Primeira coluna da primeira linha | |
-1[-1] |
Última coluna da última linha | |
2[7]:3[3] |
Da linha 2 coluna 7 até a linha 3 coluna 3 | |
7[1,3,6,8] |
Colunas 1, 3, 6 e 8 da sétima linha | |
-1[2:4] |
Colunas 2, 3 e 4 da última linha |