2013-12-08 4 views
1

Моя платформа: Windows 7, 64 бит; 8 ГБ памяти; gnuwin32; sed 4.1.5.4013; awk 3.1.6.2962.sed, awk, regex для изменения химических терминов

Моя проблема: длинные химические термины.

Example_1_: 4-((((2-chloroethyl)nitrosoamino)carbonyl)methylamino)cyclohexanecarboxylic acid. 

Example_2_: 3'-O-(3-(N-(4-azido-2-nitrophenyl)amino)propionyl)adenosine-5'-triphosphate. 

Example_3_: 2-((2-chloroethyl)methylamino)ethyl-4-ethoxybenzoate. 

Хочет ввести <wbr> дать браузеру возможность разорвать долгий химический термин.

Хотите сломать после правого пара.

Однако, только хотите ввести <wbr>, если химический термин имеет 3 или более правых парен.

Кроме того, если химический термин имеет три или более правых парса, только хотите ввести <wbr> для двух последних правых парен. Причина: не нужно обертывать термин более чем тремя строками.

Example_1_ would look like this: 4-((((2-chloroethyl)nitrosoamino)carbonyl)`<wbr>`methylamino)`<wbr>`cyclohexanecarboxylic acid. 

Example_2_ would look like this: 3'-O-(3-(N-(4-azido-2-nitrophenyl)amino)`<wbr>`propionyl)`<wbr>`adenosine-5'-triphosphate 

Example_3_ would not be modified because it does not have 3 or more right parens. 

Как использовать sed, awk, regex реализовать выше?

Заранее благодарим за консультацию.

+0

tks для изменения формата –

ответ

2

Спасибо за четкое объяснение. Кажется, это работает. У меня нет точно вашей версии sed.

sed 's/)\([^)]*)\)\([^)]*)\)\([^)]*\)$/)\1`<wbr>`\2`<wbr>`\3/' data.txt 

Вы не сказали, какую оболочку используете. Это для bash и подобных. Для Windows CMD попробуйте двойные кавычки.

+0

perfect; Спасибо. И я могу опираться на это, если мне нужно его настроить. –

+0

Да, знал, что нужно сделать. TY. –

Смежные вопросы