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 arev
.rev
inverte la stringa e la incanala incut
.- il
-c
(caratteri) opzione dicecut
per restituire una sequenza di caratteri dalla stringa. - il
2-
opzione dicecut
per restituire l'intervallo di caratteri dal carattere due alla fine della riga. Se è stato fornito un secondo numero, Che cosa2-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 arev
.rev
inverte la stringa e la incanala incut
.- il
-d' '
(delimitatore) opzione dicecut
per restituire una sequenza di caratteri delimitata da uno spazio. - il
-f1
opzione dicecut
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 incut
.- il
-c
(caratteri) opzione dicecut
per restituire una sequenza di caratteri da ogni riga. - il
2-
opzione dicecut
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 incut
per la seconda volta.- il
-c
(caratteri) opzione dicecut
per restituire una sequenza di caratteri da ciascuna stringa. - il
2-
opzione dicecut
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 inrev
.rev
inverte i nomi dei file e li reindirizza acut
.cut
restituisce la prima parte di ogni nome di file fino a un delimitatore. il-d'.'
dadocut
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 arev
.rev
inverte le estensioni dei file nel loro ordine originale. Sono incanalati insort
.sort
ordina le estensioni dei file e reindirizza i risultati auniq
.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.