изменение Majuscule и крошечные случаи - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть файл, содержащий строки с одним словом в верхнем регистре и одним другим словом в нижнем регистре, например:

"BAMBARA"{ "bambara" }

В качестве вывода я хочу иметь:

case(BAMBARA) { template("bambara") }.

Пока у меня есть sed/"$"/case($)/ Но это не работает вообще.Как я могу сделать это, указав прописные и строчные буквы?

Ответы [ 4 ]

0 голосов
/ 26 сентября 2018
$ sed 's/"\([^"]*\)"\(.*\)\("[^"]*"\)/case(\1) \2template(\3)/' file
case(BAMBARA) { template("bambara") }
0 голосов
/ 26 сентября 2018

awk-команда, которая использует " в качестве разделителя полей (немного грязно):

awk -F"\"" '{print "case("$2") { template(\""$4"\") }."}' inputFile
0 голосов
/ 26 сентября 2018

простой будет

sed 's/\([a-z]\+\)/template(\1)/;s/"\([A-Z]\+\)"/case(\1) /'

, обратите внимание, что порядок важен.Если вы инвертируете его, вам будет соответствовать слово case, так как оно полностью переведено в нижний регистр.

0 голосов
/ 26 сентября 2018

Попробуйте:

sed 's/"\([^"]*\)"{ \("[^"]*"\) }/case(\1) { template(\2) }./'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...