我有一个文本文件,里面包含以下内容:
我想删除没有第四个字段(第四对数字)的行。期望输出结果为:A 25 27 50
B 35 75
C 75 78
D 99 88 76
我知道使用awk命令是这种任务的最佳选择,但我想知道我的sed命令有什么问题,因为如下所示它应该可以正常工作:A 25 27 50
D 99 88 76
sed -E '/^[ABCD] ([0-9][0-9]) \1$/d' text.txt
使用支持back-referencing (\1)的POSIX ERE引用前面用括号包围的模式。
我尝试了以下命令:
sed -E '/^[ABCD] ([0-9][0-9]) [0-9][0-9]$/d' text.txt
但它似乎只删除了我想要的第一个出现的内容。
- 为什么反向引用不按预期工作?
- 第二次尝试中第一次出现的问题是什么,如果需要包含全局选项,那么应该如何添加?已经尝试在结尾处与/d(用于删除)一起添加了全局选项,但没有起作用。