bash - 使用 bash 脚本将文本文件一分为二

标签 bash text sed awk split

我有一个文本文件,中间某处有一个标记:

one
two
three
blah-blah *MARKER* blah-blah
four
five
six
...

我只需要将这个文件分成两个文件,第一个包含 MARKER 之前的所有内容,第二个包含 MARKER 之后的所有内容。它似乎可以用 awk 或 sed 在一行中完成,我只是不知道如何做。

我尝试了简单的方法——使用 csplit , 但 csplit 不能很好地处理 Unicode 文本。

最佳答案

你可以用awk轻松做到这一点

awk -vRS="MARKER" '{print $0>NR".txt"}' file

关于bash - 使用 bash 脚本将文本文件一分为二,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3644238/

相关文章:

linux - 从 shell 的 HTML 文档中按名称删除元素 - Sed 命令失败

bash - 如何从文档中删除重复的短语?

Linux bash if - elif 没有按预期工作

react-native - 用破折号 react 字符串的原生文本分词策略

java - 以大量 nul 字符结尾的 StringBuilder

sed - “sed”命令在 PBS 脚本中无法正常工作

linux - 当从 cron 调用脚本时,脚本中的 Sed 命令不起作用

linux - Bash 脚本为不同的用户返回不同的结果

mysql - 如何使用 Apache 服务器自动备份 Godaddy 上的 mysql 数据库

c# - 禁用 WinForms 文本渲染上的抗锯齿功能