我的平台: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.
如何使用sed
,awk
,regex
来实现上述目标?
提前感谢您的建议。
答案 0 :(得分:2)
感谢您的明确解释。这似乎有效。我没有你的sed版本。
sed 's/)\([^)]*)\)\([^)]*)\)\([^)]*\)$/)\1`<wbr>`\2`<wbr>`\3/' data.txt
您没有说明您正在使用哪种外壳。这是针对bash和类似的。对于Windows CMD,请尝试使用双引号。