【发布时间】:2023-03-26 02:58:01
【问题描述】:
我有一个这种格式的测试文件:
G03X22Y22.5
G01X48.5
M98P9001 (OFF)****
G00X20Y25
M98P8051 (FAST CUT)
G01X22Y34
G01X25Y33
我正在尝试制作一个 bash 或 MSDOS 脚本:
查找文件中所有匹配的行:M98P9001
如果 NEXT 2 LINES 不包含代码 { M98P8050, M98P8080 OR M09 } 删除所有 3 行。这将导致输出:
G03X22Y22.5
G01X48.5
G01X22Y34
G01X25Y33
我尝试过使用 SED 或 AWK 的解决方案,但还没有找到合适的解决方案:
sed -e '/M98P9001/,+2d' input.txt >> output.txt
找到匹配项后,此行将始终删除所有 3 行,但如果匹配项后的下 2 行与 { M98P8050, M98P8080 OR M09 } 不匹配,我只需要删除这些行。
【问题讨论】:
-
M98P90012345是否“匹配”M98P9001?类似地,您要匹配的所有字符串 - 您是在寻找部分匹配还是完整工作匹配或其他内容? -
后续的两行必须匹配还是只有其中之一?