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 pararev
.rev
inverte a corda e a canaliza paracut
.- a
-c
(personagens) opção dizcut
para retornar uma sequência de caracteres da string. - a
2-
opção dizcut
para retornar o intervalo de caracteres do caractere dois ao final da linha. Se um segundo número foi fornecido, O que2-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 pararev
.rev
inverte a corda e a canaliza paracut
.- a
-d' '
(delimitador) opção dizcut
para retornar uma sequência de caracteres delimitada por um espaço. - a
-f1
opção dizcut
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 paracut
.- a
-c
(personagens) opção dizcut
para retornar uma sequência de caracteres de cada linha. - a
2-
opção dizcut
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 paracut
pela segunda vez.- a
-c
(personagens) opção dizcut
para retornar uma sequência de caracteres de cada string. - a
2-
opção dizcut
para retornar o intervalo de caracteres do caractere dois ao final de cada linha. Esse “pular” 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 pararev
.rev
inverte os nomes dos arquivos e os direciona paracut
.cut
retorna a primeira parte de cada nome de arquivo até um delimitador. a-d'.'
dadoscut
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 pararev
.rev
inverte as extensões de arquivo em sua ordem original. Eles são canalizados parasort
.sort
classifica as extensões de arquivo e canaliza os resultados parauniq
.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.