删除行:在pattern1之后以及在pattern2和pattern3之间使用awk /
发布时间:2020-12-14 02:07:14 所属栏目:Linux 来源:网络整理
导读:我需要删除文件中的行,这些行在pattern1之后以及在模式2和pattern3之间,如下所示: aaaaaaaa bbbbbbbbpattern1 -----After this linecdedededddedededpattern2fefefefe -----Delete this lineefefefef -----Delete this linepattern3adsffdsdhuaserew 请问您
我需要删除文件中的行,这些行在pattern1之后以及在模式2和pattern3之间,如下所示:
aaaaaaaa bbbbbbbb pattern1 <-----After this line cdededed ddededed pattern2 fefefefe <-----Delete this line efefefef <-----Delete this line pattern3 adsffdsd huaserew 请问您可以建议如何使用awk或sed或perl来完成此操作. 解决方法sed '/pattern1/,${ /pattern2/,/pattern3/{/pattern2/b; /pattern3/b; d;} };' file 格式: /pattern1/,${ /pattern2/,/pattern3/ { /pattern2/b; /pattern3/b; d; } } 解释: > / pattern1 /,$是pattern1到文件末尾之后的行范围 更新 从注释中,可以重写内部块: //!d 哪里: > //(空模式)匹配最后使用的正则表达式(在这种情况下是pattern2和pattern3) 所以完整的,重写的模式是: /pattern1/,/pattern3/ { //!d } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |