我有一个结构如下的文件:
M: a
M: b
Player: c
M: d
Sequencer.Play( SpineAnimation(foo, speaker)@0 )
Player: e
M: f
Sequencer.Play( SpineAnimation(bar, speaker)@0 )
...
如何将其转换为这样的文件:
M: a
M: b
Player: c
M foo: d
Player: e
M bar: f
...
换句话说,如果下一行有Sequencer.Play( SpineAnimation(...
,我想把它后面的单词放在当前行的冒号之前。
不知道最好的工具是什么,我在想 awk,但话又说回来,我认为使用该工具会很麻烦。我愿意使用任何命令来完成此操作。我试图在这里做类似答案的事情:将两行合并为一个,从两者中选择选定的单词 但是这个问题似乎并不平凡,因为该Sequencer.Play
行并不总是存在。
你可以尝试这样的事情,使用 sed:
N
...命令在模式空间中P;D
维护一个 2 行缓冲区,然后该s
命令匹配 2 行模式,捕获 theM
和换行符之间的部分,并从 theSpineAnimation(
和后面,
重新替换它们M