我将文本“块”定义为文件开头、换行符或文件结尾之间的所有行:
block1
block2
block3
anotherblock4
anotherblock5
anotherblock6
lastblock7
lastblock8
任何文本都可以占据一个块 - 不知道那里有哪些行。我尝试编写一个 shell 脚本在第二个块插入一个新行,但由于 sed 不喜欢使用换行符,我绕过了这个 sed oneliner:
sed -n "H;\${g;s/\n\n/\nTEST\n\n/2;p}"
这导致:
[newline]
block1
block2
block3
anotherblock4
anotherblock5
anotherblock6
TEST
lastblock7
lastblock8
问题是,它在缓冲区的开头添加了一个换行符(标记为 [newline] 因为 StackOverflow 的标记无法显示它)是否有另一种方法可以使用不同的工具或不同的正则表达式来做到这一点?