假设我有一个文件,如下所示
1,2,3-5,6
1,2,3-5,6,
1
1-3
1,2,3-,4,5-7
1,2,3-,4,5-7,
1,2,-3,4,5
1,2,-,3,4
1,2,,,3,4
,1,2,3只有结合下列规则才可视为有效:
[0-9]+-[0-9]+[0-9]+,[0-9]+[0-9]+以逗号结尾的行也应视为有效。
我只想提取
1,2,3-5,6
1,2,3-5,6,
1
1-3如下所示的其他行与规则不匹配
1,2,3-,4,5-7
1,2,3-,4,5-7,
1,2,-3,4,5
1,2,-,3,4
1,2,,,3,4
,1,2,3因为有些行范围不完整,有些行在组中缺少数字。
P.S:只使用PCRE兼容的grep解决方案会很棒,但其他解决方案也是受欢迎的。
发布于 2021-07-25 17:56:00
反图案:
grep -Ev '^,|,-|-,|,,' file1,2,3-5,6
1,2,3-5,6,
1
1-3grep -E '^,|,-|-,|,,' file1,2,3-,4,5-7
1,2,3-,4,5-7,
1,2,-3,4,5
1,2,-,3,4
1,2,,,3,4
,1,2,3https://unix.stackexchange.com/questions/659837
复制相似问题