Função de terminal personalizada para alterar o texto do caso

0

Estou à procura de uma função de terminal personalizada change_case que funcionará como abaixo para me ajudar a gerir os meus títulos no meu Website:

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 do exemplo - Como posso fazer a tela de login aparecer em vez de me registrar automaticamente?

upper: COMO POSSO FAZER A TELA DE LOGIN APARECER EM VEZ DE ME LOGAR EM AUTOMATICAMENTE?

menor: como posso fazer a tela de login aparecer em vez de me registrar automaticamente?

sentence: Como posso fazer a tela de login aparecer em vez de me registrar automaticamente?

custom: Como posso fazer a tela de login aparecer em vez de me registrar automaticamente?

    
por Parto 13.03.2015 / 21:25

1 resposta

1

Isso não é muito complicado:

  1. Copie o script abaixo em um arquivo vazio, salve-o como change_case (sem extensão) em ~/bin (talvez você tenha que criar o diretório). Torne o script executável
  2. Talvez seja necessário efetuar logout / in, especialmente se o diretório ainda não existir (ou, como alternativa, executar: source ~/.profile )
  3. Abra uma janela de terminal, 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
    

Eu testei com todas as opções da sua pergunta (superior, inferior, sentença, personalizada) e todas devem funcionar como seu exemplo.

O script

#!/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))
    
por Jacob Vlijm 13.03.2015 / 22:18