sed,awk,regex修改化学术语

时间:2013-12-08 17:12:44

标签: regex sed awk

我的平台:Windows 7,64位; 8 GB内存;的GnuWin32; sed 4.1.5.4013; awk 3.1.6.2962。

我的问题:化学术语很长。

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>让浏览器有机会打破长期的化学术语。

想在正确的paren之后休息。

但是,如果化学术语有3个或更多正确的parens,则只想引入<wbr>

此外,如果化学术语有三个或更多右派,只想在最后两个右派中引入<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.

如何使用sedawkregex来实现上述目标?

提前感谢您的建议。

1 个答案:

答案 0 :(得分:2)

感谢您的明确解释。这似乎有效。我没有你的sed版本。

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

您没有说明您正在使用哪种外壳。这是针对bash和类似的。对于Windows CMD,请尝试使用双引号。