Postagem em destaque

Criando bot do Telegram em Shell script com ShellBot

Concatenar e imprimir arquivos na ordem reversa

Sobre

Concatena e imprime arquivos na ordem reversa.

Descrição

tac copia cada ARQUIVO ou '-' (entrada padrão) se nenhum arquivo for dado e reverte os registro, imprimindo o arquivo com as linhas na ordem reversa.

Para mais informações consulte o manual: tac(1)


Uso

tac [OPCAO]... [ARQUIVO]...

Exemplos

Considere o conteúdo do arquivo msg.txt a seguir:

Bem-vindo ao Mundo Linux.
Você percorrerá um caminho entre usuários:
Iniciantes
Intermediários
Avançados

1. Listando o conteúdo do arquivo na ordem reversa.
SHAMAN@shellscriptx:~$ tac msg.txt
Avançados
Intermediários
Iniciantes
Você percorrerá um caminho entre usuários:
Bem-vindo ao Mundo Linux.
Note que as linhas do arquivo foram listada na ordem reversa, ou seja, de trás para frente. O comando tac lê o arquivo ou entrada padrão, armazena e inicia a impressão dos registros começando a partir da última linha até a primeira.

2. Anexando e revertendo uma expressão no arquivo.
SHAMAN@shellscriptx:~$ echo -e 'Nível Jedi\nNoob' | tac - msg.txt
Noob
Nível Jedi
Avançados
Intermediários
Iniciantes
Você percorrerá um caminho entre usuários:
Bem-vindo ao Mundo Linux.
O caractere '-' faz com que o comando leia os dados da entrada padrão, sua posição na sintaxe do comando determina se ele será exibido no inicio ou final do arquivo; Neste caso os dados enviados pelo comando 'echo' são invertidos e anexados os conteúdo invertido do arquivo e direcionados para a saída padrão.

3. Invertendo uma expressão.
SHAMAN@shellscriptx:~$ echo -e 'Slackware\nDebian\nCentOS' | tac
CentOS
Debian
Slackware
Utilizando o comando 'echo -e' para ativar a interpretação do caractere nova-linha, inserindo um item em cada linha e produzindo uma lista que é redirecionada para o 'tac' que inverte a saída.

4. Invertendo caractere por caractere. (simulando comando rev)
SHAMAN@shellscriptx:~$ echo -e 'Slackware\nDebian\nCentOS' | tac -r -s 'x\|[^x]'

SOtneC
naibeD
erawkcalS
A expressão regular muda o comportamento do comando, fazendo com que leia caractere por caractere e aplique a inversão na linha.

Comentários

Contato

Nome

E-mail *

Mensagem *