如何以END为分隔符将多块内容的文件分割为单个文件?
按END分隔符分割文件为单个块文件
可以用awk命令直接实现需求,命令如下:
awk '!/END/{print > "block_" ++count ".txt"} /END/{close("block_" count ".txt")}' 你的输入文件名
命令解释:
- 当读取到不是END的行时,将该行内容写入到名为
block_1.txt、block_2.txt……的文件中,count变量会自动递增,保证每个块对应单独的文件。 - 当读取到END行时,立刻关闭当前正在写入的文件,避免因打开过多文件句柄导致报错(对于5000行的大文件尤其重要)。
执行后,你会得到一系列以block_加数字命名的文件,每个文件里正好是单个行块的内容,且不包含END字符串,完全符合你的需求。
内容的提问来源于stack exchange,提问作者user19619903
相关产品推荐
相关产品推荐

