
Linux文件内容行数合并
工具概述
这是一个灵活的文件内容行数合并工具,专门设计用于将文本文件按指定行数进行压缩和合并。对于需要处理大量文本文件、简化数据或进行日志压缩的场景,这个工具将会非常实用。
主要功能
灵活的行数合并
用户可以自定义每组合并的行数
支持将多行文本压缩成单行
精准的文件处理
可指定源文件和目标文件
提供详细的参数校验和错误提示
友好的交互体验
彩色终端输出,增强可读性
内置帮助文档,方便快速上手
适用场景
日志文件压缩
大文本文件处理
数据预处理
文本内容简化
使用示例
# 基本使用
bash script.sh 3 source.txt target.txt
# 查看帮助
bash script.sh -h
源码
#!/bin/bash
# 指定合并行数
num=$1
# 指定要读取的文件
file_path=$2
# 指定格式化完输入进哪个文件
file=$3
blue() {
text=$1
echo -e "\033[34m${text}\033[0m"
}
yellow() {
text=$1
echo -e "\033[33m${text}\033[0m"
}
green() {
text=$1
echo -e "\033[32m${text}\033[0m"
}
red() {
text=$1
echo -e "\033[31m${text}\033[0m"
}
HELP(){
yellow "工具使用规范: \n\tbash $0 [num] [SourceFiles] [TargetFile]\n"
yellow "\t[num] 合并行数(Number)"
yellow "\t[SourceFile] 操作文件(File)"
yellow "\t[TargetFile] 结果文件(File)"
}
if [[ $1 == "-h" ]];then
HELP
exit 0
fi
if [[ $num =~ ^[0-9]+$ ]]; then
echo "$file_path 按 $num 行合并文件保存至 $file"
else
red "合并行数必须为整型数字"
red "操作失败,请查看工具使用规范\n======================================="
HELP
exit 1
fi
if [[ $# -ne 3 ]];then
red "操作失败,请查看工具使用规范\n======================================="
HELP
exit 1
fi
if [[ -d $file_path ]];then
red "操作文件 $file_path 不能是一个目录"
red "操作失败,请查看工具使用规范\n======================================="
HELP
exit 1
fi
if [[ -f $file_path ]];then
echo "操作文件 $file_path 存在, 准备操作..."
else
echo "操作文件 $file_path 不存在, 无法操作..."
red "操作失败,请查看工具使用规范\n======================================="
HELP
exit 1
fi
if [[ -d $file ]];then
red "指定保存文件是一个目录失败"
exit 1
fi
if [[ -f $file ]];then
red "文件已存在,请指定不存在的文件"
exit 1
fi
touch "$file"
# 使用 while 循环读取文件的每一行
sum=0
str=''
while read -r line; do
sum=$((sum + 1))
# 将当前行添加到 str 中
str="$str $line"
# 如果达到指定的行数,则输出并重置
if [[ $sum -eq $num ]]; then
echo "$str" >> "$file"
str=''
sum=0
fi
done < "$file_path"
# 检查是否有剩余的行需要输出
if [[ $sum -gt 0 ]]; then
echo "$str" >> "$file"
green "合并完成,已按 $num 行合并成一行,保存至 $file"
else
green "合并完成,所有行已按 $num 行合并成一行,保存至 $file"
fi
使用注意事项
第一个参数:合并行数(必须为正整数)
第二个参数:源文件路径
第三个参数:目标文件路径
工具优势
简单易用
高度定制
错误处理完善
跨平台兼容
安全性特点
严格的输入参数校验
防止意外覆盖文件
详细的错误提示机制
结语
这个工具是一个轻量级但功能强大的文本处理脚本,能够帮助用户快速、高效地处理文本文件。无论是在日常工作还是专业开发中,它都能提供便捷的文件处理解决方案。
本文是原创文章,完整转载请注明来自 俞泊
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果