GNU/Linux >> Linux Esercitazione >  >> Linux

Ottieni tutte le possibili combinazioni di una parola in lettere minuscole/maiuscole?

Voglio scrivere uno script bash per stampare tutte le possibili permutazioni minuscole e maiuscole di una determinata parola, ad es. harley:

harley
harleY
harlEy
harLey
...
HARLey
HARLEy
HARLEY

La mia soluzione ingenua è scrivere un ciclo for n-esimo (n è len(word)) annidato per questa parola specifica:

#!/bin/bash
for a in {h,H}; do
    for b in {a,A}; do
    ...
    done
done

Tuttavia, dovrei codificare di nuovo lo script per una parola diversa.

C'è un modo migliore per farlo?

Risposta accettata:

Una soluzione leggermente migliore:

echo {h,H}{a,A}{r,R}{l,L}{e,E}{y,Y}

Per la piena scalabilità:

echo harley \
| perl -nle 'print "echo ",
                    join "",map { "{" . lc . "," .uc ."}" } split //' \
| xargs -I {} bash -c "{}"

Se devi assolutamente avere una parola per riga, vai con

for w in {h,H}{a,A}{r,R}{l,L}{e,E}{y,Y};do echo $w;done

grazie al commento di mattdm

La versione scalabile corrispondente sarebbe:

echo harley \
| perl -nle 'print join "",map { "{" . lc . "," .uc ."}" } split //' \
| xargs -I {} bash -c 'for w in {};do echo $w;done'

Per divertimento, prova a sostituire "harley" con "supercalifragilisticexpialidocious" Sono passati 5 minuti e il mio computer sta ancora scricchiolando su questo e probabilmente non finirà mai 🙂


Linux
  1. Converti tutto il testo da maiuscolo a minuscolo e viceversa?

  2. Linux:come ottenere tutti i registri di accesso dal sistema?

  3. Ottieni lo script da eseguire di nuovo se l'input è Sì?

  4. È possibile ottenere un carattere al cursore del terminale utilizzando i codici di escape Ansi?

  5. Come sostituire tutte le occorrenze di una parola in tutti i file nella riga di comando di Linux

Tutti i modi possibili per ridurre il surriscaldamento del laptop in Linux

È possibile installare tutti i pacchetti da un repository APT?

Visualizza i punti di codice unicode per tutte le lettere nel file su bash

Ottieni la dimensione di tutte le cartelle nella directory

Come far funzionare tutti i processi su ciascun core della CPU in Ubuntu?

Ottieni un semplice elenco di tutti i dischi