相关疑难解决方法(0)

根据模式将一个文件拆分为多个文件(剪切可以在行内进行)

存在很多解决方案,但这里的特殊性是我需要能够在一条线内分割,切割应该在模式之前发生.例如:

INFILE:

<?xml 1><blabla1>
<blabla><blabla2><blabla>
<blabla><blabla>
<blabla><blabla3><blabla><blabla>
<blabla><blabla><blabla><?xml 4>
<blabla>
<blabla><blabla><blabla>
<blabla><?xml 2><blabla><blabla>
Run Code Online (Sandbox Code Playgroud)

应该成为模式 <?xml

Outfile1:

<?xml 1><blabla1>
<blabla><blabla2><blabla>
<blabla><blabla>
<blabla><blabla3><blabla><blabla>
<blabla><blabla><blabla>
Run Code Online (Sandbox Code Playgroud)

Outfile2:

<?xml 4>
<blabla>
<blabla><blabla><blabla>
<blabla>
Run Code Online (Sandbox Code Playgroud)

Outfile3:

<?xml 2><blabla><blabla>
Run Code Online (Sandbox Code Playgroud)

实际上,perl在验证答案脚本在这里工作正常,我的小例子.但它会为我更大(约6GB)的实际文件生成错误.错误是:

panic: sv_setpvn called with negative strlen at /home/.../split.pl line 7, <> chunk 1.
Run Code Online (Sandbox Code Playgroud)

我没有评论的权限,这就是我开始新帖子的原因.最后,Python我更了解解决方案,因为我更了解它.

python perl awk split gnu

4
推荐指数
3
解决办法
1万
查看次数

使用Grep/Sed/Awk拆分XML文件?

试图找出最好的方法(使用我在Grep/Sed/Awk中所知的方法)根据它的单个字符串(键?)分割XML文件.我有一个XML文件,它是我所有当前FAQ条目的SQL转储,因此它包含一个条目ID,然后是一个相当大的HTML格式文档.我希望将这些条目分开,以便我可以轻松地将它们弹出到编辑器中并清理格式以导入到新的KB/FAQ系统.这是我的数据示例:

 <article id="3">
  <language>en</language>
  <category>Category Name</category>
  <keywords>Keywords, by, comma</keywords>
  <question>Question?</question>
  <answer>HTML Formatting</answer>
  <author>Author</author>
  <data>2010-05-13 09:32</data>
 </article>
Run Code Online (Sandbox Code Playgroud)

XML文件包含我以这种格式重新连接的每篇KB文章.我很乐意用bash来解决它,我只是不知道如何根据搜索将它分成多个文件.

干杯,

粘土

xml awk grep parsing sed

1
推荐指数
1
解决办法
6847
查看次数

在unix中根据大小和模式分割大文件

我有一个巨大的文件,45 GB。我想把它分成4部分。我可以通过以下方式做到这一点split --bytes=12G inputfile

问题是它扰乱了文件的模式。此拆分根据大小剪切文件,因此不会保留格式。我的输入文件如下所示:

Inspecting sequence ID   chr1:11873-13873

 V$ARID3A_04            |     1981 (-) |  0.899 |  0.774 | tttctatAATAActaaa
 V$ARID3A_04            |     1982 (+) |  0.899 |  0.767 | ttctaTAATAactaaag
Inspecting sequence ID   chr1:11873-13873

 V$ARID3A_04            |     1981 (-) |  0.899 |  0.774 | tttctatAATAActaaa
 V$ARID3A_04            |     1982 (+) |  0.899 |  0.767 | ttctaTAATAactaaag
Run Code Online (Sandbox Code Playgroud)

我想分割文件,但也要提到分割它的模式,Inspecting以便我返回的分割文件必须如下所示:

Inspecting sequence ID   chr1:11873-13873

 V$ARID3A_04            |     1981 (-) |  0.899 |  0.774 | tttctatAATAActaaa
 V$ARID3A_04            |     1982 (+) |  0.899 |  0.767 …
Run Code Online (Sandbox Code Playgroud)

linux split sed

1
推荐指数
1
解决办法
1450
查看次数

标签 统计

awk ×2

sed ×2

split ×2

gnu ×1

grep ×1

linux ×1

parsing ×1

perl ×1

python ×1

xml ×1