我需要把一个文件分割成几个部分。
原始文件:
Header 1
text 1.1
text 1.2
Header 2
text 2.1
text 2.2
因此,我需要将其分割为:
stream1.chunk:
Header 1
text 1.1
text 1.2
stream2.chunk:
Header 2
text 2.1
text 2.2
ps头必须是chunk的一部分。
我试着用正则表达式"look around"有特色,但没有成功。
可以使用"csplit">
csplit original_file '/^Header/' '{*}' --prefix=chunk_ --suffix-format='%02d.txt' --elide-empty-files
我认为在大多数基于debian的发行版中默认安装了它。以防万一你找不到。使用以下命令安装:
sudo apt-get update && sudo apt-get install coreutils
与任意awk:
awk '/^Header/{c=$2} {print > ("stream"c".chunk"); close("stream"c".chunk")}' file
ls stream*chunk