Como usar o comando rev no Linux

Conteúdo

Terminal Linux em um laptop Ubuntu.

De Linux rev comando inverte strings de texto. Este comando pode operar no texto fornecido ou em um arquivo, e parece enganosamente simples. Mas, assim como muitos utilitários de linha de comando, seu poder real se torna aparente quando você o combina com outros comandos.

a rev comando é um daqueles utilitários simples do Linux que, a primeira vista, parece uma raridade. Desempenha uma única função: cadeias reversas. E ao mesmo tempo ser capaz de imprimir uma página de ajuda rápida (-h) e mostrar o número da versão (-V), não aceita nenhum opções de linha de comando.

Então, rev inverta as cordas, e isso e tudo? Sem variações ou opções? Nós vamos, sim e não. sim, não tem permutações, mas não, Isso não é tudo. Este tutorial mostra como combiná-lo para operações poderosas.

Quando você usa rev como um bloco de construção em scripts mais complicados, realmente começa a mostrar o seu valor. rev é um de um grupo de comandos (O que tac e yes) quem são facilitadores. É mais fácil apreciar sua utilidade quando você vê como eles tornam o uso de outros comandos mais eficiente..

Usando o comando rev

Usado na linha de comando sem outros parâmetros, rev pegue qualquer entrada escrita, inverte-o e imprime-o na janela do terminal. Continue fazendo isso até que você pressione Ctrl + C para sair.

rev

Se você digitar algum texto e pressionar Enter, faz rev imprimir string para trás, a menos que você forneça um palíndromo, desde já.

Passando texto para rev

Você pode usar echo canalizar texto para rev.

eco um dois três | rev

Você também pode usar rev para inverter o conteúdo de um arquivo de texto completo, linha por linha. Neste exemplo, nós temos um arquivo contendo uma lista de nomes de arquivos. O arquivo é chamado “lista de arquivos.txt”.

rev filelist.txt

Cada linha é lida do arquivo, é revertido e, em seguida, impresso na janela do terminal.

Combinando rev com outros comandos

A seguir, Um exemplo é mostrado usando um pipeline de entrada que chama rev duas vezes.

Este comando remove o último caractere da string de texto. Isso pode ser útil para limpar a pontuação. Precisamos usar o cut comando para tira o personagem.

echo 'Remover pontuação.' | rev | cut -c 2- | rev

Vamos analisar isso.

  • echo envie a string para a primeira chamada para rev.
  • rev inverte a corda e a canaliza para cut.
  • a -c (personagens) opção diz cut para retornar uma sequência de caracteres da string.
  • a 2- opção diz cut para retornar o intervalo de caracteres do caractere dois ao final da linha. Se um segundo número foi fornecido, O que 2-5, o intervalo seria de dois a cinco caracteres. Nenhum segundo número significa “até o final da cadeia”.
  • A corrente invertida, menos seu primeiro personagem, vai para rev que inverte a corrente, então ele retorna à sua ordem original.

Porque cortamos o primeiro caractere do investido corrente, cortamos o último caractere do original corda. sim, você poderia fazer isso com sed o awk, mas esta é uma sintaxe mais simples.

Separando a última palavra

Podemos usar um truque equivalente para retornar a última palavra da linha.

O comando é equivalente ao anterior: novamente, usa rev duas vezes. As diferenças estão no caminho cut O comando é usado para escolher partes do texto.

echo 'Separe a última palavra' | rev | cut -d '' -f1 | rev

Aqui está o detalhamento do comando:

  • echo envie a string para a primeira chamada para rev.
  • rev inverte a corda e a canaliza para cut.
  • a -d' ' (delimitador) opção diz cut para retornar uma sequência de caracteres delimitada por um espaço.
  • a -f1 opção diz cut para retornar a primeira seção da string Não têm o delimitador. Em outras palavras, da primeira parte da frase para o primeiro espaço.
  • A primeira palavra invertida é passada para rev que inverte a corrente, então ele retorna à sua ordem original.

Porque extraímos a primeira palavra do investido corrente, cortamos a última palavra do original corda. A última palavra da frase foi “palavra” e é impresso para nós.

Recorte de conteúdo do arquivo

Digamos que temos um arquivo que contém uma lista de nomes de arquivos e os nomes dos arquivos estão entre aspas. Queremos remover as aspas dos nomes dos arquivos.

Vamos ver o arquivo:

menos filelist.txt

O conteúdo do arquivo é exibido para nós em less.

Podemos apagar a pontuação de ambas as extremidades de cada linha com o seguinte comando. Este comando usa ambos rev e cut duas vezes.

rev filelist.txt | cut -c 2- | rev | cut -c 2-

Os nomes dos arquivos são listados para nós sem as aspas.

O comando quebra assim:

  • rev inverte as linhas do arquivo e as canaliza para cut.
  • a -c (personagens) opção diz cut para retornar uma sequência de caracteres de cada linha.
  • a 2- opção diz cut para retornar o intervalo de caracteres do caractere dois ao final de cada linha.
  • As cadeias invertidas, menos seus primeiros caracteres, eles vão para rev.
  • rev inverta as cordas, então eles voltam ao seu pedido original. Eles são canalizados para cut pela segunda vez.
  • a -c (personagens) opção diz cut para retornar uma sequência de caracteres de cada string.
  • a 2- opção diz cut para retornar o intervalo de caracteres do caractere dois ao final de cada linha. Esse “salta” a cotação inicial, qual é o personagem um em cada linha.

Muitos cachimbos

Aqui está um comando que retorna uma lista ordenada de cada extensão de arquivo no diretório atual. Use cinco comandos Linux diferentes.

ls | rev | cut -d '.' -f1 | rev | ordenar | uniq

O procedimento é simples:

  • ls lista os arquivos no diretório atual. Estes são canalizados para rev.
  • rev inverte os nomes dos arquivos e os direciona para cut.
  • cut retorna a primeira parte de cada nome de arquivo até um delimitador. a -d'.' dados cut usar o ponto “.” e são referidos como bytes ou caracteres. A parte dos nomes de arquivo invertidos até o primeiro período são as extensões de arquivo. Estes são canalizados para rev.
  • rev inverte as extensões de arquivo em sua ordem original. Eles são canalizados para sort.
  • sort classifica as extensões de arquivo e canaliza os resultados para uniq.
  • uniq retorna uma lista única para cada tipo de extensão de arquivo única. Observe que se não houver extensão de arquivo (quanto ao makefile e os diretórios Help e gc_help), o nome completo do arquivo é exibido.

Para dar um toque final, Adicione o -c (contar) opção de linha de comando para uniq comando.

ls | rev | cut -d '.' -f1 | rev | ordenar | uniq -c

Agora temos uma lista ordenada dos diferentes tipos de arquivos no diretório atual com uma contagem de cada.

Essa é uma frase inteligente!

DrawroF e ot drawkcaB gnioG

Às vezes você tem que voltar para seguir em frente. E você regularmente avança mais rápido como parte de uma equipe.

Adicionar rev ao seu repertório de comandos de acesso, e em breve você o usará para simplificar scripts que, de outra forma, seriam complicados.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.