无法识别和删除一行 - 应该很简单

时间:2013-09-20 16:15:16

标签: regex bash sed

所以这应该很容易,但我似乎无法做到正确。我有以下数据:

 4131942         Door Assy, LH Ref 249R/RP
 15              #7002668 - Rev. A - June, 2006
 1.             6110010 Bolt, #10-24 x 1/2” Flat Head

我想删除中间行。

这是我正在使用的语句的最新迭代:

 sed -i '/(^[(0-9)][(0-9)](.*)[#][(0-9)][(0-9)][(0-9)][(0-9)][(0-9)][(0-9)][(0-9)](.*))/d' 

我使用了多种变体和不同的正则表达式,但无济于事。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您的正则表达式没问题,但您需要使用sed -r才能启用扩展正则表达式。

尝试:

sed -ri '/(^[(0-9)][(0-9)](.*)[#][(0-9)][(0-9)][(0-9)][(0-9)][(0-9)][(0-9)][(0-9)](.*))/d'  file

或者,将其简化为:

sed -ri  '/^[0-9]{2}.*#[0-9]{7}.*/d' file