删除第一个标记之前和第二个标记之后的所有文本

发布于 2024-12-03 06:50:11 字数 538 浏览 0 评论 0原文

所以,我正在编写一个脚本,并且有一个如下所示的文本文件:

blahblahblahdeleteme
<!-- post --> 
This is the text I want to keep! Pick me!!
<!-- post navigation --> 
more text please delete me I am not needed....

我想删除第一个和最后一个部分(以及标记,如果容易完成)并将文本保留在中间。

现在,我知道 bash 通常不是解析这样的文本的最佳选择,但由于它很简单,我想我最好还是坚持使用 bash。这像我想象的那么容易吗?

我找到了这篇文章:使用 bash 脚本将文本文件分成两部分

我可以将其分成两个文本文件,然后再分成两个,只保留中间的一个。这是我最好的选择吗?请告诉我!

So, I'm writing a script and I have a text file like this:

blahblahblahdeleteme
<!-- post --> 
This is the text I want to keep! Pick me!!
<!-- post navigation --> 
more text please delete me I am not needed....

I would like to delete the first and last parts (and the marker, if easily done) and keep the text in the middle.

Now, I know bash isn't usually the best for parsing text like this, but since it's simple I thought I might as well stick with using bash. Is this as easy as I think it should be?

I found this post: split text file in two using bash script

I could split it into two text files then into two more and just keep the middle one. Is that my best bet? Please let me know!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

葵雨 2024-12-10 06:50:11
sed '1,/<!-- post -->/d;/<!-- post navigation -->/,$d' file
  • 从第一行到第一个标记:删除
  • 从第二个标记到文件末尾($)删除
sed '1,/<!-- post -->/d;/<!-- post navigation -->/,$d' file
  • from 1st line to first mark: delete
  • from second mark to end of file ($) delete
请你别敷衍 2024-12-10 06:50:11
awk '/<\!-- post --/,/<\!-- post navigation/' file
awk '/<\!-- post --/,/<\!-- post navigation/' file
萤火眠眠 2024-12-10 06:50:11

awk 中这真的很容易:

/^<!-- post -->/ { if (start != 1)
    { start=1; firstline=1;}
}

/^<!-- post navigation -->/ {start=0;}

{ if (start == 1 && firstline != 1)
  { print $0; }
  firstline=0;
}

It would be really easy in awk:

/^<!-- post -->/ { if (start != 1)
    { start=1; firstline=1;}
}

/^<!-- post navigation -->/ {start=0;}

{ if (start == 1 && firstline != 1)
  { print $0; }
  firstline=0;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文