
Estou procurando uma função de terminal personalizada change_case
que funcione conforme abaixo para me ajudar a gerenciar meus títulos em meu site:
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]
Título de exemplo -Como posso fazer com que a tela de login apareça em vez de fazer login automaticamente?
superior:COMO POSSO FAZER A TELA DE LOGIN APARECER EM VEZ DE FAZER LOGIN AUTOMATICAMENTE?
mais baixo:como posso fazer a tela de login aparecer em vez de fazer login automaticamente?
frase:Como posso fazer com que a tela de login apareça em vez de fazer login automaticamente?
personalizado:Como posso fazer com que a tela de login apareça em vez de fazer login automaticamente?
Responder1
Isso não é muito complicado:
- Copie o script abaixo em um arquivo vazio e salve-o como
change_case
(sem extensão) em~/bin
(talvez seja necessário criar o diretório).Torne o script executável - Talvez seja necessário fazer logout/login, especialmente se o diretório ainda não existir (ou, alternativamente, executar:
source ~/.profile
) Abra uma janela de terminal e teste-a executando o comando:
change_case custom this is a test case to see if all in the script works
saída:
This is a Test Case to See If All in the Script Works
Testei com todas as opções da sua pergunta (superior, inferior, frase, personalizado) e todas devem funcionar como seu exemplo.
O roteiro
#!/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))