Benutzerdefinierte Terminalfunktion zum Ändern der Textgroß-/Kleinschreibung

Benutzerdefinierte Terminalfunktion zum Ändern der Textgroß-/Kleinschreibung

Ich bin auf der Suche nach einer benutzerdefinierten Terminalfunktion change_case, die wie folgt funktioniert und mir bei der Verwaltung der Titel auf meiner Website hilft:

change_case [option] "string"

option:
    upper - STRING TO UPPERCASE
    lower - string to lowercase
    sentence - Uppercase first letter of every word, others to lowercase
    custom - String to Sentence Case except These Words if they appear as the 1st letter:
        [in,by,with,of,a,to,is,and,the]

Beispieltitel -Wie kann ich dafür sorgen, dass der Anmeldebildschirm angezeigt wird, anstatt mich automatisch anzumelden?

Oberer, höher:WIE KANN ICH DEN ANMELDEBILDSCHIRM ANZEIGEN LASSEN, STATT MICH AUTOMATISCH ANZUMELDEN?

untere:wie kann ich dafür sorgen, dass der Anmeldebildschirm angezeigt wird, anstatt mich automatisch anzumelden?

Satz:Wie kann ich dafür sorgen, dass der Anmeldebildschirm angezeigt wird, anstatt mich automatisch anzumelden?

Brauch:Wie kann ich dafür sorgen, dass der Anmeldebildschirm angezeigt wird, anstatt mich automatisch anzumelden?

Antwort1

Das ist nicht allzu kompliziert:

  1. Kopieren Sie das folgende Skript in eine leere Datei und speichern Sie es unter change_case(ohne Erweiterung) in ~/bin(möglicherweise müssen Sie das Verzeichnis erstellen).Machen Sie das Skript ausführbar
  2. Sie müssen sich ggf. ab- und wieder anmelden, insbesondere wenn das Verzeichnis noch nicht existiert (oder alternativ Folgendes ausführen: source ~/.profile)
  3. Öffnen Sie ein Terminalfenster und testen Sie es, indem Sie den folgenden Befehl ausführen:

    change_case custom this is a test case to see if all in the script works
    

    Ausgabe:

    This is a Test Case to See If All in the Script Works
    

Ich habe es mit allen Optionen aus Ihrer Frage getestet (Groß-, Kleinschreibung, Satz, benutzerdefiniert) und alle sollten wie in Ihrem Beispiel funktionieren.

Das Drehbuch

#!/usr/bin/env python3
import sys

string = sys.argv[2:]
opt = sys.argv[1]

excluded = ["in","by","with","of","a","to","is","and","the"]

if opt == "lower":
    print((" ").join(string).lower())
elif opt == "upper":
    print((" ").join(string).upper())
elif opt == "sentence":
    print((" ").join(string).title())
elif opt == "custom":
    line = []
    for s in string:
        s = s.title() if not s in excluded else s
        line.append(s)
    print((" ").join(line))

verwandte Informationen