在我的文件开头有一个read me部分,很多文件。该节的格式如下:
############### Read me ###############
many lines here
########################################我想用新的内容更新它们。我使用的是Windows 7,但可以访问Linux。我有Eclipse和PowerGREP。我不知道如何使用OS命令行命令来做到这一点,也不知道如何使用Eclipse或PowerGREP来实现这一点。有人能帮我吗?
发布于 2018-06-14 04:39:54
如果您的节的格式总是相同的,那么它应该像下面这样简单:
############### Read me ###############[\s\S]*?########################################对于内联(?s),单行/点匹配-所有模式,您可以使用一个常规的.而不是[\s\S],但这并不重要。见演示。
然后,根据需要替换文本块。
发布于 2018-06-14 05:44:17
你可以很容易地用awk做这件事。
输入:
############### Read me ###############
many lines here
many lines here
many lines here
########################################
real stuff
real stuff
real stuff
real stuff
############### Read me ###############
many lines here
many lines here
many lines here
blabla
########################################
real stuff2
real stuff2
real stuff2命令:
awk '/###### Read me #####/{a=0}/^#+$/{a=1;next}{if(a)print}' input
real stuff
real stuff
real stuff
real stuff
real stuff2
real stuff2
real stuff2只需将输出重定向到另一个文件即可。
解释:
/###### Read me #####/{a=0}当行包含###### Read me #####时,在0处放置一个变量/^#+$/{a=1;next}当一行只包含#时,将该变量放回1{if(a)print}当变量位于1时,打印行https://stackoverflow.com/questions/50849332
复制相似问题