Parsing 删除第一个标记之前和第二个标记之后的所有文本
因此,我正在编写一个脚本,我有一个文本文件,如下所示:Parsing 删除第一个标记之前和第二个标记之后的所有文本,parsing,bash,sed,awk,Parsing,Bash,Sed,Awk,因此,我正在编写一个脚本,我有一个文本文件,如下所示: blahblahblahdeleteme <!-- post --> This is the text I want to keep! Pick me!! <!-- post navigation --> more text please delete me I am not needed.... blahblahblahdeleteme 这是我想要保留的文本!选我!! 更多文字请删除我我不需要。。。。 我想
blahblahblahdeleteme
<!-- post -->
This is the text I want to keep! Pick me!!
<!-- post navigation -->
more text please delete me I am not needed....
blahblahblahdeleteme
这是我想要保留的文本!选我!!
更多文字请删除我我不需要。。。。
<>我想删除第一个和最后一个部分(以及标记,如果容易的话),并将文本保持在中间。
现在,我知道bash通常不是解析像这样的文本的最佳工具,但是因为它很简单,我想我还是坚持使用bash为好。这像我认为的那样容易吗
我发现这个帖子:
我可以把它分成两个文本文件,然后再分成两个,只保留中间的一个。这是我最好的选择吗?请让我知道 在
awk中这将非常容易:
/^<!-- post -->/ { if (start != 1)
{ start=1; firstline=1;}
}
/^<!-- post navigation -->/ {start=0;}
{ if (start == 1 && firstline != 1)
{ print $0; }
firstline=0;
}
/^/{if(start!=1)
{start=1;firstline=1;}
}
/^/{start=0;}
{if(start==1&&firstline!=1)
{打印$0;}
一线=0;
}
awk'/sed'1,//d;//$d'文件
- 从第一行到第一个标记:删除
- 从第二个标记到文件结尾($)删除
您不能编写一个使用正则表达式的简单java程序吗?如果您对标记非常具体,那么编写关联应该非常简单:
awk '/<\!-- post --/,/<\!-- post navigation/' file
sed '1,/<!-- post -->/d;/<!-- post navigation -->/,$d' file