使用此命令,我试图在 M502 的两个模式和 M502 之后的第二行之间插入 M09,看起来像 X41.5Y251.5T201。
具体来说,我试图在最后一行之前插入 M09。
sed -i "/M502/{:a;N;/\(.*\)T\([0-9]\+\)/!ba;N;s/\(.*\)\n\(.*\)T\([0-9]\+\)/\1\nM09\n\2T\3/}" *.nc
结果:
M502
M09
X1287.2Y353.28T324
..........
G27X-310.27
X41.5Y251.5T201
应该:
M502
X1287.2Y353.28T324
..........
G27X-310.27
M09
X41.5Y251.5T201
我正在尝试将最后一行与 匹配\(.*\)T\([0-9]\+\),但这会选择第二行。如何让 sed 忽略此表达式的第一个匹配项?
我强调我可能有数量不足的此类文本块,我需要为每个文本块插入 M09。