linux – 如何拆分文件并保留每个部分的第一行?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 如何拆分文件并保留每个部分的第一行?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1171字,纯文字阅读大概需要2分钟。
内容图文
![linux – 如何拆分文件并保留每个部分的第一行?](/upload/InfoBanner/zyjiaocheng/951/68f59064d43a43eab43167bdf5ca58c1.jpg)
给定:一个具有“特殊”第一行的大文本数据文件(例如CSV格式)(例如,字段名称).
通缉:相当于coreutils split -l命令,但附加要求原始文件中的标题行出现在每个结果片段的开头.
我猜一些分裂和头部的混合会做的伎俩?
解决方法:
这是robhruska的脚本清理了一下:
tail -n +2 file.txt | split -l 4 - split_
for file in split_*
do
head -n 1 file.txt > tmp_file
cat "$file" >> tmp_file
mv -f tmp_file "$file"
done
我在不需要的地方移除了wc,cut,ls和echo.我改变了一些文件名,使它们更有意义.我把它分成多行只是为了让它更容易阅读.
如果你想获得花哨,可以使用mktemp或tempfile来创建临时文件名,而不是使用硬编码文件名.
编辑
使用GNU split可以执行此操作:
split_filter () { { head -n 1 file.txt; cat; } > "$FILE"; }; export -f split_filter; tail -n +2 file.txt | split --lines=4 --filter=split_filter - split_
因可读性而破裂:
split_filter () { { head -n 1 file.txt; cat; } > "$FILE"; }
export -f split_filter
tail -n +2 file.txt | split --lines=4 --filter=split_filter - split_
指定–filter时,split会为每个输出文件运行命令(在这种情况下为必须导出的函数),并将命令环境中的变量FILE设置为文件名.
过滤器脚本或函数可以对输出内容甚至文件名进行任何操作.后者的一个例子可能是输出到变量目录中的固定文件名:>例如,“$FILE / data.dat”.
内容总结
以上是互联网集市为您收集整理的linux – 如何拆分文件并保留每个部分的第一行?全部内容,希望文章能够帮你解决linux – 如何拆分文件并保留每个部分的第一行?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。