Пользовательская терминальная функция для изменения текстового случая

Я ищу пользовательскую терминальную функцию change_case это будет функционировать как ниже, чтобы помочь мне управлять своими заголовками на моем веб-сайте:

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]

Заголовок в качестве примера - Как я могу заставить экран входа в систему появиться вместо того, чтобы регистрировать меня в автоматически?

верхний: КАК Я МОГУ ЗАСТАВИТЬ ЭКРАН ВХОДА В СИСТЕМУ ПОЯВИТЬСЯ INSTEAD OF, РЕГИСТРИРУЮЩИЙ ME В АВТОМАТИЧЕСКИ?

ниже: как я могу заставить экран входа в систему появиться вместо того, чтобы регистрировать меня в автоматически?

предложение: Как я могу Заставить Экран Входа в систему Появиться Вместо того, чтобы Регистрировать Меня В Автоматически?

пользовательский: Как я могу Заставить Экран Входа в систему Появиться Вместо того, чтобы Регистрировать Меня в Автоматически?

0
задан 13 April 2017 в 05:23

1 ответ

Это не слишком сложно:

  1. Скопируйте сценарий ниже в пустой файл, сохраните его как change_case (никакое расширение) в ~/bin (Вам, вероятно, придется создать каталог). Сделайте исполняемый файл сценария
  2. Вам, вероятно, придется зарегистрироваться/в, особенно если каталог еще не существовал (или альтернативно, работал: source ~/.profile)
  3. Откройте окно терминала, протестируйте его путем выполнения команды:

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

    вывод:

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

Я протестировал его со всеми опциями от Вашего вопроса (верхний, ниже, предложение, пользовательское), и все должны работать Вашим примером.

Сценарий

#!/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))
1
ответ дан 5 October 2019 в 02:27

Другие вопросы по тегам:

Похожие вопросы: