根据特定的模式独立的单一文本文件分割成多个文件 [英] Separate single text file into multiple files based on certain pattern

查看:140
本文介绍了根据特定的模式独立的单一文本文件分割成多个文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有以下文件:(Song.txt)

Suppose I have the following file: (Song.txt)

Song one
bla bla bla bla 
bla bla bla bla bla
Song two
yaya ya yaa 
blaaa bla bla blaaaaa
Song three
bla bla bla

我想将这个文件分为三个文件是这样的:

I want to separate this file into three files to be like the following:

首先文件名应为Song_1.txt

First filename should be Song_1.txt

Song One
bla bla bla bla 
bla bla bla bla bla

二名应该是Song_2.txt

Second filename should be Song_2.txt

Song two
yaya ya yaa 
blaaa bla bla blaaaaa

三文件名应该是Song_3.txt

Third filename should be Song_3.txt

Song three
bla bla bla

我怎么可以这样用awk,grep的,PERL,Python和/或任何基于UNIX的工具和可用的语言?

How can I do this using awk, grep, perl, python, and/or whatever unix-based tools and languages available ?

推荐答案

这应该帮助 -

gawk -v RS="Song" 'NF{ print RS$0 > "Song_"++n".txt" }' Song.txt

测试:

[jaypal:~/Temp] cat Song.txt 
Song one
bla bla bla bla 
bla bla bla bla bla
Song two
yaya ya yaa 
blaaa bla bla blaaaaa
Song three
bla bla bla

[jaypal:~/Temp] gawk -v RS="Song" 'NF{ print RS$0 > "Song_"++n".txt" }' Song.txt

[jaypal:~/Temp] ls -l S*
-rw-r--r--  1 jaypalsingh  staff  113 28 May 17:55 Song.txt
-rw-r--r--  1 jaypalsingh  staff   47 28 May 18:06 Song_1.txt
-rw-r--r--  1 jaypalsingh  staff   45 28 May 18:06 Song_2.txt
-rw-r--r--  1 jaypalsingh  staff   24 28 May 18:06 Song_3.txt

[jaypal:~/Temp] cat Song_1.txt 
Song one
bla bla bla bla 
bla bla bla bla bla

[jaypal:~/Temp] cat Song_2.txt 
Song two
yaya ya yaa 
blaaa bla bla blaaaaa

[jaypal:~/Temp] 

这篇关于根据特定的模式独立的单一文本文件分割成多个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆