GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erhalten Sie alle möglichen Kombinationen eines Wortes in Klein-/Großbuchstaben?

Ich möchte ein Bash-Skript schreiben, um alle möglichen Klein- und Großbuchstaben-Permutationen eines bestimmten Wortes zu drucken, z. Harley:

harley
harleY
harlEy
harLey
...
HARLey
HARLEy
HARLEY

Meine naive Lösung besteht darin, eine n-te (n ist len(Wort)) verschachtelte for-Schleife für dieses bestimmte Wort zu schreiben:

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

Allerdings müsste ich das Skript für ein anderes Wort erneut codieren.

Gibt es einen besseren Weg, dies zu erreichen?

Akzeptierte Antwort:

Eine etwas bessere Lösung:

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

Für volle Skalierbarkeit:

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

Wenn Sie unbedingt ein Wort pro Zeile haben müssen, wählen Sie

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

danke an den Kommentar von mattdm

Die entsprechende skalierbare Version wäre:

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

Versuchen Sie zum Spaß, „harley“ durch „supercalifragilisticexpialidocious“ zu ersetzen. Es sind 5 Minuten vergangen, und mein Computer knirscht immer noch und wird wahrscheinlich nie fertig werden 🙂


Linux
  1. Alle Texte von Großbuchstaben in Kleinbuchstaben und umgekehrt umwandeln?

  2. Linux:Wie bekomme ich alle Anmeldeprotokolle vom System?

  3. Liste aller Dateien nach Maske im Terminal abrufen?

  4. Skript erneut ausführen lassen, wenn Eingabe ja ist?

  5. 3 Tricks, um mehrere Befehle in derselben Zeile auszugeben

Alle Möglichkeiten, um die Überhitzung von Laptops unter Linux zu reduzieren

Holen Sie sich die letzten 4 Zeichen der Ausgabe von Standardausgabe

Zeigen Sie Unicode-Codepunkte für alle Buchstaben in der Datei auf Bash an

Wie bekomme ich nur alle laufenden Prozess-IDs?

Wie bekomme ich alle Prozesse auf jedem CPU-Kern in Ubuntu zum Laufen?

Holen Sie sich eine einfache Liste aller Festplatten