【发布时间】:2021-11-28 14:16:32
【问题描述】:
我有一个文本文件,其中包含:
A 25 27 50
B 35 75
C 75 78
D 99 88 76
我想删除没有第四个字段(第四对数字)的行。 预期输出:
A 25 27 50
D 99 88 76
我知道 awk 命令将是此类任务的最佳选择,但我想知道我的 sed 命令有什么问题,因为它应该可以正常工作见下文:
sed -E '/^[ABCD] ([0-9][0-9]) \1$/d' text.txt
使用带有反向引用 (\1) 的 POSIX ERE 来引用用括号括起来的前一个模式。
我已经尝试过这个命令:
sed -E '/^[ABCD] ([0-9][0-9]) [0-9][0-9]$/d' text.txt
但它似乎只删除了我想要的第一次出现。 我将不胜感激,
- 为什么反向引用不能按预期工作。
- 在第二次尝试中第一次出现是怎么回事,如果是的话,我应该包括全局选项然后如何,因为我已经尝试将它与 /d 一起添加到末尾(用于删除)但它没有用。
【问题讨论】: