当名称和值具有' ='时,将属性的名称与其值分开。签到他们

时间:2015-04-08 15:40:27

标签: regex sed

我正在努力解决我尝试使用sed或任何其他* nix命令行解决的问题。

我试图将属性的名称与属性文件中的值分开。

问题是某些属性名称和属性值具有' ='签到他们。

(Y\ \=\ Generate\ Notification\ Letter)=(Y \= Generate Notification Letter)
(Y\ \=\ Generate\ Restriction)=(Y \= Generate Restriction)
(Y\ \=\ Sort\ by\ Group\ ID)=(Y \= Sort by Group ID)

我无法使用' ='像我通常那样的分隔符。

如何制作一个正则表达式,在非转义的' ='之前分隔所有内容。标志和非逃脱后的一切' ='登录?

除了sed之外还有另一种方法吗?

1 个答案:

答案 0 :(得分:0)

这会使用制表符替换未转义的=

sed 's/\([^\\]\|^\)=/\1\t/g' file

你也可以尝试一下。我假设输入文件中的每一行都有一个未转义的=字符。

$ sed 's/\(.*[^\\]\|^\)=\(.*\)/Name: \1\t Value: \2/g' file
Name: (Y\ \=\ Generate\ Notification\ Letter)    Value: (Y \= Generate Notification Letter)
Name: (Y\ \=\ Generate\ Restriction)     Value: (Y \= Generate Restriction)
Name: (Y\ \=\ Sort\ by\ Group\ ID)   Value: (Y \= Sort by Group ID)