在我的文件开头有一个自述部分,很多文件。该部分的格式如下:
############### Read me ###############
many lines here
########################################
我想用新内容更新它们。我使用的是 Windows 7 ,但可以访问 Linux 。我有 Eclipse 以及 PowerGREP 。我不知道如何使用OS命令行命令执行此操作,也不知道如何使用Eclipse或PowerGREP执行此操作。有谁可以帮我这个?
答案 0 :(得分:2)
如果您的部分格式始终相同,则应该如此简单:
############### Read me ###############[\s\S]*?########################################
使用内联(?s)
单行/点匹配全部模式,您可以使用常规.
代替[\s\S]
,但这并不重要。请参阅Demo。
然后,根据需要替换文本块。
答案 1 :(得分:1)
您可以使用awk
<强> INPUT:强>
############### 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
时打印