awk нечувствителен к регистру с gsub

Хорошо, я понял. grub.cfg используется только для создания других файлов cfg. Если вы хотите отредактировать существующие пункты меню или добавить свои собственные, вам нужно отредактировать menu.cfg и другие файлы cfg, включенные в menu.cfg (, в моем случае это был txt.cfg для изменения текста -на основе пункта меню установки. чтобы иметь свои пользовательские параметры загрузки и добавить пользовательскую метку ).

1
13.08.2021, 09:35
1 ответ

Использование Raku (, ранее известного как Perl _6)

raku -pe 's:i:g/ «father» | «daughter» | «son» /{$/.tclc}/;' 

ИЛИ

raku -pe 's:i:g/ «father» | «daughter» | «son» /{$/.wordcase}/;'

Наречие регулярного выражения :ignorecaseвыполняет нечувствительное к регистру -сопоставление в Raku (сокращенно:i). Левая «и правая »граница слова -обеспечивают соответствие только целым словам (, например. никаких ложных совпадений, которые могут привести к выводу, подобномуJaSon). Обратите внимание, что вы можете использовать <<вместо «для левой границы слова -и >>вместо »для правой границы слова -.

Чтобы изменить регистр, у Раку есть изящная wordcaseподпрограмма, (как вы уже догадались ), которая берет слова и делает их первую букву заглавной, а все не -начальные буквы переводят в нижний регистр. [Функция Rakutclc(буквально «заглавный -нижний регистр» )делает то же самое по умолчанию, но с меньшим количеством опций].

Пример ввода:

Mark|father
Jason|SOn
Jose|son
Steffy|daugHter
Agnes|moTHer

Пример вывода:

Mark|Father
Jason|Son
Jose|Son
Steffy|Daughter
Agnes|moTHer

Если OP хочет разделить символ-разделитель, такой как |, просто вызовите следующий Raku one -liner перед или после кода выше:

raku -ne '.split("|").put;' 

Пример вывода:

Mark Father
Jason Son
Jose Son
Steffy Daughter
Agnes moTHer

ПРИЛОЖЕНИЕ:

@Stéphane Chazelas отмечает в комментариях, что для приведенного выше кода (, например, )слова, написанные через дефис, будут получать внутреннюю капитализацию (, например. с god-sonпо god-Son). В приведенном ниже коде используются три буквальных совпадения, что позволяет избежать этой проблемы:

raku -ne '.wordcase(:where({ $_.fc eq "father" | "daughter" | "son"})).put;'

ИЛИ

raku -pe '.=wordcase(:where({ $_.fc eq "father" | "daughter" | "son"}));'

https://docs.raku.org/language/regexes
https://raku.org/

1
11.09.2021, 06:52

Теги

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