perl - 如何在文件中搜索模式并从匹配点到文件末尾获取新文件?

标签 perl unix sed file-processing

我需要获取一个文件并找到第一次出现的文字字符串模式作为文件的完整行:

Acknowledgments:

然后我希望从匹配行一直到文件末尾创建一个新文件。

我希望 perl 是一个很好的方法,但我不是一个 perl 人,或者 sed 是一个好方法吗?

请建议一种在 Unix 中可靠地完成此任务的简单方法。

最佳答案

这是使用 sed 执行此操作的一种方法:

sed -n '/^Acknowledgements:$/,$p' input-file > output-file

-n 选项禁止将输入打印到输出。 /^Acknowledgements:$/,$ 部分是一个地址范围规范,表示从匹配正则表达式 ^Acknowledgements:$ 的行开始匹配到结尾文件 ($),然后将这些行打印出来 (p) 到输出。

如果希望输入文件和输出文件相同,还需要指定-i选项告诉sed就地编辑。

关于perl - 如何在文件中搜索模式并从匹配点到文件末尾获取新文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2888744/

相关文章:

perl - 在 Perl 中正确使用 IO::Socket::INET 作为 TCP 客户端

linux - 在文件中找到的每行的增量(第 1 个)数为 1

windows - Strawberry Perl 是 %ENV 一个普通的对象

regex - (正则表达式)检索包含 2 个符号之间特定单词的整个短语

c - 如何获取 Solaris/Unix 上文件系统的 inode 计数?

linux - 如何使用 grep 命令打印列中搜索关键字产生的行,

linux - 使用 sed、awk、grep 转换文本

Linux 按列合并两个文件

perl - RIFF WAV header 格式 2014 更新?

linux - 剪切命令在 Linux 上不起作用