经过八个多小时的搜索,我放弃了并创建了一个新的问题。这个操作很简单,但是我一直在努力让它正确地工作,似乎已经尝试了SO上的每一个其他解决方案。我需要两件事:
1.) 在整个文件中第一次出现PBS
的行之前插入一行。它应该在整个文件中仅发生一次。由于sed是按行跟随,所以我怀疑每个我尝试的解决方案最终都会在文件中的每个出现位置重复插入。
因此,需要执行以下操作。原始文件:
stuff here
stuff here
PBS -N
PBS -V
stuff here
变成:
stuff here
stuff here
**inserted line**
PBS -N
PBS -V
stuff here
2.) 在整个文件中最后一次出现“PBS”的行后添加一行。与之前相同:在整个文件中只能发生一次。
因此,需要执行以下操作:
stuff here
stuff here
PBS -N
PBS -V
stuff here
变成:
stuff here
stuff here
PBS -N
PBS -V
**inserted line**
stuff here
我看到网上提供的所有解决方案(我已经打开了大约20个标签页)都说这应该相对容易。但我毫不掩饰地说,目前为止sed对我的自尊心造成了影响...感谢任何能帮忙的人。