gpt4 book ai didi

regex - 使用 BASH 中的 shell 脚本在正则表达式上将一个大的 txt 文件拆分为 200 个较小的 txt 文件

转载 作者:行者123 更新时间:2023-11-29 08:49:46 24 4
gpt4 key购买 nike

我希望主题足够清楚,我在之前询问的 bin 中没有找到任何关于此的具体信息。我尝试过在 Perl 或 Python 中实现它,但我认为我可能太努力了。

是否有一个简单的 shell 命令/管道可以根据开始和结束的正则表达式将我的 4mb .txt 文件拆分为单独的 .txt 文件?

我在下面提供了一个简短的文件示例。因此您可以看到每个“故事”都以短语“X of XXX DOCUMENTS”开头,这可用于拆分文件。

我认为这应该很容易,如果 bash 做不到我会感到惊讶 - 比 Perl/Py 更快。

这里是:

                           1 of 999 DOCUMENTS


Copyright 2011 Virginian-Pilot Companies LLC
All Rights Reserved
The Virginian-Pilot(Norfolk, VA.)

...



3 of 999 DOCUMENTS


Copyright 2011 Canwest News Service
All Rights Reserved
Canwest News Service

...

预先感谢您的所有帮助。

罗斯

最佳答案

awk '/[0-9]+ of [0-9]+ DOCUMENTS/{g++} { print $0 > g".txt"}' file

OSX users will need gawk, as the builtin awk will produce an error like awk: illegal statement at source line 1

ruby (1.9+)

#!/usr/bin/env ruby
g=1
f=File.open(g.to_s + ".txt","w")
open("file").each do |line|
if line[/\d+ of \d+ DOCUMENTS/]
f.close
g+=1
f=File.open(g.to_s + ".txt","w")
end
f.print line
end

关于regex - 使用 BASH 中的 shell 脚本在正则表达式上将一个大的 txt 文件拆分为 200 个较小的 txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com