sed匹配^ NOT操作数与。* anyString匹配

时间:2014-08-18 17:41:21

标签: regex variables sed

请将您的答案纳入工作的sed行。

解决方案:

sed -r "s/([^]].*)\[/\1\r[/g" testfile.txt

处理括号两侧的解决方案,并删除标签

sed -r "s/\t//g;s/([^]].*)\[/\1\r[/g;s/\]([^[].*)$/]\r\1/g" testfile.txt

我有这个gnuwin32(工作)sed行:

sed -r "s/(.*)\[/\1\r[/g" testfile.txt

它做的是

s/
(.*)\[  - matches anyString[
/
\1\r[   - splits anyString<INSERTSCARRIAGERETURN>[
/g

我想做的是使用^(非操作数)将anyString排除为&#34;]&#34;

所以...

之前几乎就是这个

*[

变为

*
[

...然而

如果* == ],我不想执行此操作。

有人建议我做^\[

之类的事情

但是,我不知道在^等变量stringMask上实现(.*)运算符的位置/方式。如果.*以/ *结尾,我]是否会成为字符串问题?

我想要

(.*^\[)

(.*)^\[

任何帮助将不胜感激。

这是我的样本数据集

item_gloves

[OBJECT:ITEM]

###test###
    [ITEM_GLOVES:ITEM_GLOVES_GAUNTLETS]###test###
[NAME:gauntlet:gauntlets]
###test###[ARMORLEVEL:2]
[UPSTEP:1]
###test###[SHAPED]
[LAYER:ARMOR]###test######test###
[COVERAGE:100]
[LAYER_SIZE:20]
[LAYER_PERMIT:15]
[MATERIAL_SIZE:2]
[SCALED]
[BARRED]
[METAL]
[LEATHER]
[HARD]

1 个答案:

答案 0 :(得分:2)

sed -r "s/^([^]]*)\[/\1\r[/g" testfile.txt