新闻中心
Linux 如何合并多个文本文件?cat/sed/awk 实用技巧
Linux合并文本文件首选cat,需去重用awk '!seen[$0]++',去空行加NF,跳过头尾用sed或head/tail,加行号或文件标识用awk的FILENAME/NR变量。

Linux 合并多个文本文件最直接的方法是用 cat,但实际场景中常需去重、去空行、加序号、跳过头部/尾部、按条件筛选——这时 sed 和 awk 就派上用场了。下面整理几类高频需求的实用写法,不讲原理,只给能立刻跑通的命令。
基础合并:cat 最常用也最可靠
把 file1.txt、file2.txt、file3.txt 顺序拼成 all.txt:
cat file1.txt file2.txt file3.txt > all.txt
合并当前目录下所有 .log 文件(按字母序):
cat *.log > merged.log
注意:通配符展开顺序依赖文件名排序,如需指定顺序,显式列出或用 find + sort 控制。
合并时去重且保持顺序:awk '!seen[$0]++'
多个文件内容有重复行,想合并后每行只保留首次出现的一次(原顺序不变):
awk '!seen[$0]++' file1.txt file2.txt file3.txt > unique.txt
- 这个写法比 sort -u 更轻量,不改变原始行序
- 若要去除空白行再合并去重:awk 'NF && !seen[$0]++' *.txt
- 区分大小写;如需忽略大小写,改用 awk 'NF && !seen[tolower($0)]++'
合并时跳过每文件的前 N 行或末 N 行
比如每个日志文件开头都有 3 行头信息,不想合并进去:
简小派
简小派是一款AI原生求职工具,通过简历优化、岗位匹配、项目生成、模拟面试与智能投递,全链路提升求职成功率,帮助普通人更快拿到更好的 offer。
123
查看详情
sed '1,3d' file1.txt file2.txt | awk 'NF' > clean.log
如果要跳过每个文件的最后 2 行(适合去掉 footer):
for f in *.txt; do head -n -2 "$f"; done | awk 'NF' > no_footer.log
- head -n -2 表示除最后两行外全部输出
- awk 'NF' 过滤掉空行,比 grep '.' 更稳妥(能处理纯空格行)
- 避免用 tail -n +4 直接处理多文件,它对每个文件独立计数但 cat 后会混在一起
合并并添加行号/文件标识:awk 实现灵活标记
想看出某行来自哪个文件,或加全局序号便于追踪:
awk '{print FILENAME ":" NR ": " $0}' file1.txt file2.txt > labeled.txt
只在每文件开头加个分隔线:
awk 'FNR==1{print "\n=== " FILENAME " ==="} {print}' *.conf > full.conf
- FILENAME 是当前文件名,FNR 是当前文件内行号,NR 是总行号
- 想加全局连续行号:awk '{print NR ": " $0}' *.txt
- 合并时统一补前缀(如日志时间戳):awk '{print "[2025-06-15] " $0}' *.log
基本上就这些。cat 负责“搬”,sed 负责“剪裁”,awk 负责“标记+逻辑”。不用死记,遇到具体需求,先想清楚要删什么、留什么、标什么,再挑对应工具组合就行。
以上就是Linux 如何合并多个文本文件?cat/sed/awk 实用技巧的详细内容,更多请关注其它相关文章!
# 工具
# linux
# 编辑器
# 如需
# 服务管理
# 运行环境
# 跳过
# 文本文件
# 多个
# 行号
# ai
# 丽水推广网站
# 靠谱的seo平台
# 营销推广培训课件
# 麒麟seo监测
# 兴安盟网络营销推广方式
# 西藏网站推广值得推荐
# 恩平网站建设服务
# 兰州网站建设怎样做好
# 武汉官网网站优化代办
# 滨州关键词网站优化推广
# 压缩解压
# 操作步骤
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
在J*a中如何在J*a中使用异常机制记录错误日志_异常日志实践经验
uc手机浏览器网页版入口 uc浏览器手机版便捷登录首页
黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】
深入理解J*aScript Promise异步执行与微任务队列
Go语言中对Map值调用带指针接收者方法:原理与最佳实践
mc.js游戏直达 mc.js网页免下载版本秒进地址
解决Bootstrap卡片顶部边距导致背景图下移的问题
mc.js官网登录入口 mc.js官方登录入口最新版
单射、满射与双射的关系 一文理清所有逻辑
iwriter统一登录平台 iwrite账号密码登录页面
excel怎么制作工资条 excel快速生成工资条的方法
html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】
b站怎么删除评论_b站评论管理与删除操作
Fabric Mod开发:在1.19.3+版本中正确添加自定义物品并管理物品组
PHP中高效并行检查多链接状态的教程
解决Django多数据库/多Schema环境下外键迁移问题
C++ vector二维数组定义_C++ vector of vector用法
Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录
Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】
漫蛙manwa2最新登录网址_漫蛙manwa2手机网页版入口
支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样
LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置
Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】
正确连接J*aScript到HTML实现可点击图片与自定义事件处理
使用Python高效删除Word宏并转换DOCM为DOCX格式
必由学官方平台入口 必由学在线课堂登录地址
CSS Box Model与弹性按钮:维持布局稳定的动画实践
菜鸟取件码是什么怎么查 最全查询渠道汇总
微博网页版首页入口 微博电脑端官网登录链接
学习通网页版快速入口 学习通官网网页版直接打开
小米汽车11月交付量突破40000台!雷军:将继续努力
c++20的std::jthread是什么_c++可中断线程与RAII式管理
手机屏幕碎了但能正常使用怎么办 手机外屏碎裂的修复建议
离线运行Go语言之旅:本地部署与GOPATH配置指南
b站赚钱渠道_b站收益来源
将HTML Canvas内容转换为可上传的图像文件(File对象)
在VS Code中配置和运行Dart程序的完整步骤
c++中为什么推荐使用using替代typedef_c++现代化类型别名
Python Socket多播通信中指定源IP地址的实践指南
Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧
邮政快递包裹最新位置 邮政快递实时追踪入口
学习通网页版官方登录 超星学习通电脑端入口指南
CSS如何设置hover状态颜色_hover伪类调整背景或文字颜色
css滚动区域卡顿如何改善_css滚动问题用will-change优化渲染
写好的html代码怎么运行出来_运行写好的html代码方法【教程】
Composer的 "licenses" 命令如何帮助你遵守开源协议_检查项目依赖的许可证合规性
TikTok搜索不到用户发布内容怎么办 TikTok用户内容搜索优化方法
将JSON对象数组转置为键值对列表的实用指南
Python getattr() 异常处理深度解析:避免程序意外退出
腾讯视频怎么举报不良内容_腾讯视频内容举报流程与违规信息处理方法


2025-12-05
浏览次数:次
返回列表
标识用awk的FILENAME/NR变量。