我试图使用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*.txtdo split -d -a1 -l10000 --additional-suffix=.txt "$f" "${f%.txt}-"done
这个怎么运作:
> -d告诉split使用数字后缀
> -a1告诉split只以后缀的单个数字开头.
> -l10000告诉split每10,000行分割一次.
> –additional-suffix = .txt告诉split将.txt添加到新文件名称的末尾.
>“$f”告诉拆分要拆分的文件的名称.
>“${f%.txt} – ”告诉拆分用于拆分文件的前缀名称.
例
假设我们从这些文件开始:
$lsfilename1.txt filename2.txt
然后我们运行我们的命令:
$for f in filename*.txt; do split -d -a1 -l10000 --additional-suffix=.txt "$f" "${f%.txt}-"; done
完成后,我们现在拥有原始文件和新的拆分文件:
$lsfilename1-0.txt filename1-1.txt filename1.txt filename2-0.txt filename2-1.txt filename2.txt
使用较旧的,功能较少的分割形式
如果您的拆分不提供–additional-suffix,那么请考虑:
for f in filename*.txtdo split -d -a1 -l10000 "$f" "${f%.txt}-" for g in "${f%.txt}-"* do mv "$g" "$g.txt" donedone总结
以上是内存溢出为你收集整理的linux – 每n行拆分批量文本文件全部内容,希望文章能够帮你解决linux – 每n行拆分批量文本文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)