Come usare il comando rev in Linux

Contenuti

Terminale Linux su un laptop Ubuntu.

De Linux rev il comando inverte le stringhe di testo. Questo comando può operare sul testo fornito o su un file, e sembra ingannevolmente semplice. Ma proprio come molte utility da riga di comando, il suo vero potere diventa evidente quando lo combini con altri comandi.

il rev command è una di quelle semplici utility Linux che, a prima vista, sembra una rarità. Esegue una singola funzione: catene inverse. E allo stesso tempo essere in grado di stampare una rapida pagina di aiuto (-h) e mostra il suo numero di versione (-V), non ne accetta nessuno opzioni della riga di comando.

Quindi, rev invertire le corde, e basta? Nessuna variazione o opzione? Bene, sì e no. sì, non ha permutazioni, ma no, Non è tutto. Questo tutorial ti mostra come combinarlo per operazioni potenti.

Quando usi rev come elemento costitutivo in script più complicati, inizia davvero a mostrare il suo valore. rev fa parte di un gruppo di comandi (Che cosa tac e yes) chi sono i facilitatori. È più facile apprezzare la loro utilità quando vedi come rendono più efficiente l'uso di altri comandi..

Usando il comando rev

Utilizzato sulla riga di comando senza altri parametri, rev prendere qualsiasi input scritto, lo inverte e poi lo stampa nella finestra del terminale. Continua a farlo finché non premi Ctrl + C per uscire.

rev

Se digiti del testo e premi Invio, fa rev stampa la stringa all'indietro, a meno che tu non fornisca un palindromo, Certo.

Passare il testo a rev

Puoi usare echo reindirizzare il testo a rev.

eco uno due tre | rev

Puoi anche usare rev per invertire il contenuto di un file di testo completo, linea per linea. In questo esempio, abbiamo un file contenente un elenco di nomi di file. Il file viene chiamato “listafile.txt”.

rev filelist.txt

Ogni riga viene letta dal file, viene invertito e quindi stampato nella finestra del terminale.

Combinare rev con altri comandi

Prossimo, Viene mostrato un esempio utilizzando una pipeline di input che chiama rev due volte.

Questo comando rimuove l'ultimo carattere dalla stringa di testo. Questo potrebbe essere utile per cancellare la punteggiatura. Dobbiamo usare il cut comando a spoglia il personaggio.

echo 'Rimuovi punteggiatura.' | rev | tagliare -c 2- | rev

Analizziamolo.

  • echo invia la stringa alla prima chiamata a rev.
  • rev inverte la stringa e la incanala in cut.
  • il -c (caratteri) opzione dice cut per restituire una sequenza di caratteri dalla stringa.
  • il 2- opzione dice cut per restituire l'intervallo di caratteri dal carattere due alla fine della riga. Se è stato fornito un secondo numero, Che cosa 2-5, l'intervallo sarebbe da due a cinque caratteri. Nessun secondo numero significa “fino alla fine della catena”.
  • La catena invertita, meno il suo primo carattere, va a rev che inverte la catena, quindi ritorna al suo ordine originale.

Perché abbiamo tagliato il primo carattere del investito catena, tagliamo l'ultimo carattere del originale corda. sì, potresti farlo con? sed oh awk, ma questa è una sintassi più semplice.

Separare l'ultima parola

Possiamo usare un trucco equivalente per restituire l'ultima parola della riga.

Il comando è equivalente al precedente: ancora, usa rev due volte. Le differenze stanno nel modo cut Il comando viene utilizzato per scegliere parti del testo.

echo 'Separa l'ultima parola' | rev | taglia -d' ' -f1 | rev

Ecco la ripartizione del comando:

  • echo invia la stringa alla prima chiamata a rev.
  • rev inverte la stringa e la incanala in cut.
  • il -d' ' (delimitatore) opzione dice cut per restituire una sequenza di caratteri delimitata da uno spazio.
  • il -f1 opzione dice cut per restituire la prima sezione della stringa non ha il delimitatore. In altre parole, dalla prima parte della frase al primo spazio.
  • La prima parola invertita viene passata a rev che inverte la catena, quindi ritorna al suo ordine originale.

Perché abbiamo estratto la prima parola dal investito catena, tagliamo l'ultima parola del originale corda. L'ultima parola della frase era “parola” ed è stampato per noi.

Ritaglio del contenuto del file

Diciamo che abbiamo un file che contiene un elenco di nomi di file e i nomi dei file sono tra virgolette. Vogliamo rimuovere le virgolette dai nomi dei file.

Vediamo il file:

less filelist.txt

Il contenuto del file viene visualizzato per noi in less.

Possiamo cancellare la punteggiatura di entrambe le estremità di ogni riga con il seguente comando. Questo comando usa entrambi rev e cut due volte.

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

I nomi dei file sono elencati per noi senza le virgolette.

Il comando si suddivide in questo modo:

  • rev inverte le righe nel file e le convoglia in cut.
  • il -c (caratteri) opzione dice cut per restituire una sequenza di caratteri da ogni riga.
  • il 2- opzione dice cut per restituire l'intervallo di caratteri dal carattere due alla fine di ogni riga.
  • Le catene invertite, meno i suoi primi caratteri, loro vanno a rev.
  • rev invertire le corde, quindi tornano al loro ordine originale. Sono incanalati in cut per la seconda volta.
  • il -c (caratteri) opzione dice cut per restituire una sequenza di caratteri da ciascuna stringa.
  • il 2- opzione dice cut per restituire l'intervallo di caratteri dal carattere due alla fine di ogni riga. Questo “salta” la citazione iniziale, qual è il carattere uno su ogni riga?.

Tanta pipa

Ecco un comando che restituisce un elenco ordinato di ogni estensione di file nella directory corrente. Usa cinque diversi comandi Linux.

ls | rev | taglia -d'.' -f1 | rev | ordinare | unico

La procedura è semplice:

  • ls elenca i file nella directory corrente. Questi sono incanalati in rev.
  • rev inverte i nomi dei file e li reindirizza a cut.
  • cut restituisce la prima parte di ogni nome di file fino a un delimitatore. il -d'.' dado cut per usare il punto “.” come delimitatore. La parte dei nomi di file invertiti fino al primo punto sono le estensioni dei file. Questi sono incanalati a rev.
  • rev inverte le estensioni dei file nel loro ordine originale. Sono incanalati in sort.
  • sort ordina le estensioni dei file e reindirizza i risultati a uniq.
  • uniq restituisce un elenco univoco per ogni tipo di estensione di file univoco. Nota che se non ci sono estensioni di file (per quanto riguarda il makefile e le directory Help e gc_help), viene visualizzato il nome completo del file.

Per dargli un tocco finale, Aggiungi il -c (contare) opzione della riga di comando per uniq comando.

ls | rev | taglia -d'.' -f1 | rev | ordinare | uniq -c

Ora otteniamo un elenco ordinato dei diversi tipi di file nella directory corrente con un conteggio di ciascuno.

È una frase intelligente!

DrawroF e ot drawkcaB gnioG

A volte devi tornare indietro per andare avanti. E avanzi regolarmente più velocemente come parte di una squadra.

Aggiungere rev al tuo repertorio di comandi di accesso, e presto lo utilizzerai per semplificare gli script che altrimenti sarebbero complicati.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.