根据特定的模式独立的单一文本文件分割成多个文件 [英] Separate single text file into multiple files based on certain pattern
本文介绍了根据特定的模式独立的单一文本文件分割成多个文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有以下文件:(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屋!
查看全文