Shell脚本
Reference
Shell笔记
shell自动清理30天以上的文件
shell自动备份PVE里的虚拟机系统文件
chatgpt做的自动备份pve镜像
shell 定时备份文件夹脚本以及删除过期备份
写一个断电按顺序自动关闭服务器的脚本
GPT:自动停止服务,控制关机
GPT: Shell 停止Docker 应用
GPT: Shell从文档读取配置信息
Shell传参给脚本,带参数运行
GPT:Shell停止Systemd服务
停止Moosefs服务
StartMoosefs.sh
StopMoosefs.sh
StopDocker.sh
StopSysyemService.sh
备份脚本
Linux运维常用脚本总结
网卡绑定bond配置脚本
自动取文件脚本
shell脚本: 同步两个本地文件夹
分割mysql-slow慢日志的脚本
解压不成功退出整个解压
Linux操作 :批量截取文件第一列,去重
文本的一些操作
nginx监控脚本
监控tomcat脚本
kafka监控脚本
zookeeper监控启动脚本
文件按行数分割(带文件头)
rsync同步脚本
本文档使用 MrDoc 发布
-
+
首页
文件按行数分割(带文件头)
``` #!/bin/bash # 检查是否提供了输入文件名参数 if [ $# -ne 1 ]; then echo "Usage: $0 <input_file>" exit 1 fi # 获取输入文件名 input_file=$1 # 检查输入文件是否存在 if [ ! -f "$input_file" ]; then echo "Error: File '$input_file' not found!" exit 1 fi # 定义分割后的文件的最大行数 (包括文件头) lines_per_file=50000 # 提取文件头并保存到 header.txt header=$(head -n 1 "$input_file") # 获取文件的总行数 total_lines=$(wc -l < "$input_file") # 计算分割后的文件数(减去文件头行) total_lines=$((total_lines - 1)) num_files=$(( (total_lines + lines_per_file - 2) / (lines_per_file - 1) )) echo "Splitting '$input_file' into $num_files parts..." # 使用 awk 进行文件分割 awk -v header="$header" -v lines_per_file=$lines_per_file -v input_file="$input_file" ' NR == 1 {next} # 跳过第一行(文件头已保存) { file_index = int((NR - 2) / (lines_per_file - 1)) + 1; output_file = input_file "_part" file_index ".txt"; # 如果新文件刚生成,先写入文件头 if (!seen[output_file]++) { print header > output_file; } # 写入实际行 print >> output_file; } ' "$input_file" echo "File split completed!" ```
dz
2024年10月17日 09:22
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码