如何按NUL字符分割文件?csplit命令尝试后未生效
按NUL字符分割文件的正确命令
你之前尝试的csplit命令无法按NUL字符分割,原因在于:
csplit默认使用基本正则表达式,不支持\0或\x00这类转义序列匹配NUL字符csplit是基于行的分割工具,默认以换行符划分行,无法直接将NUL作为跨行分隔符
以下是两种可行的替代方案:
方案1:使用split命令
split支持指定NUL作为分隔符,配合shell的ANSI-C转义(如bash/zsh)可直接传递NUL字符:
split -t $'\0' -d --additional-suffix=.txt FILE part_
参数说明:
-t $'\0':指定NUL为分隔符-d:使用数字后缀(如part_00、part_01)替代默认字母后缀--additional-suffix=.txt:为输出文件添加.txt后缀(可选)part_:输出文件的前缀
方案2:使用awk命令
通过设置记录分隔符为NUL,将每个NUL分隔的段写入单独文件:
awk -v RS='\0' '{print > "output_" NR ".txt"}' FILE
-v RS='\0':将NUL设为记录分隔符NR表示当前记录的序号,每个记录会写入output_1.txt、output_2.txt等文件
内容的提问来源于stack exchange,提问作者Karl Schulz
相关产品推荐
相关产品推荐

