linux – 每n行拆分批量文本文件
我有一个包含多个文本文件的文件夹.我正在尝试将所有文??本文件拆分为每行10000行,同时保留基本文件名,即如果filename1.txt包含20000行,则输出将为filename1-1.txt(10000行)和filename1-2.txt(10000行) ). 我试图使用split -10000 filename1.txt,但这不保留基本文件名,我必须为文件夹中的每个文本文件重复该命令.我也试过为* .txt做f;分裂-10000 $f.txt;完成.这也行不通. 知道我怎么能这样做?谢谢. 解决方法for f in filename*.txt; do split -d -a1 -l10000 --additional-suffix=.txt "$f" "${f%.txt}-"; done 或者,写在多行: for f in filename*.txt do split -d -a1 -l10000 --additional-suffix=.txt "$f" "${f%.txt}-" done 这个怎么运作: > -d告诉split使用数字后缀 例 假设我们从这些文件开始: $ls filename1.txt filename2.txt 然后我们运行我们的命令: $for f in filename*.txt; do split -d -a1 -l10000 --additional-suffix=.txt "$f" "${f%.txt}-"; done 完成后,我们现在拥有原始文件和新的拆分文件: $ls filename1-0.txt filename1-1.txt filename1.txt filename2-0.txt filename2-1.txt filename2.txt 使用较旧的,功能较少的分割形式 如果您的拆分不提供–additional-suffix,那么请考虑: for f in filename*.txt do split -d -a1 -l10000 "$f" "${f%.txt}-" for g in "${f%.txt}-"* do mv "$g" "$g.txt" done done (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |