Linux 如何合并多个文本文件?cat/sed/awk 实用技巧


Linux合并文本文件首选cat,需去重用awk '!seen[$0]++',去空行加NF,跳过头尾用sed或head/tail,加行号或文件标识用awk的FILENAME/NR变量。

linux 如何合并多个文本文件?cat/sed/awk 实用技巧

Linux 合并多个文本文件最直接的方法是用 cat,但实际场景中常需去重、去空行、加序号、跳过头部/尾部、按条件筛选——这时 sedawk 就派上用场了。下面整理几类高频需求的实用写法,不讲原理,只给能立刻跑通的命令。

基础合并: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 行头信息,不想合并进去:

芦笋演示 芦笋演示

一键出成片的录屏演示软件,专为制作产品演示、教学课程和使用教程而设计。

芦笋演示 227 查看详情 芦笋演示

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 实用技巧的详细内容,更多请关注其它相关文章!


# 如何选择  # 热门营销推广系统怎么做  # github谷歌seo  # 安顺抖音营销推广方法  # 南平网站建设排名公司  # 济南白云seo  # 日照seo关键字优化  # 北京朝阳抖音seo  # 家装营销网络推广策略  # 短信怎么推广营销产品  # 深圳seo全网推广公司  # 自动重启  # linux  # 一文  # 看不懂  # 最容易  # 如需  # 跳过  # 文本文件  # 多个  # 行号  # ai  # 工具 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 斯宾塞称XGP云游戏“蒸蒸日上”:正在构建一个游戏从未如此唾手可得的未来  Python对象引用与属性赋值:理解链表中的行为  《战地6》反作弊已成功拦截240万次作弊 发售第一周98%比赛没有作弊  使用VS Code调试Python代码:从入门到精通  智慧团建活动报名入口 智慧团建活动报名入口手机端官网​  Dagster资产间数据传递与用户配置管理教程  韩小圈网页版PC端入口 韩小圈网页版官方网站入口  一加 Ace 6V 快充无法启用_一加 Ace 6V 充电优化  使用Selenium在无头Chrome中交互动态菜单和复选框的策略  如何外贸网站设计-能留住客户提升用户体验!  2025考研成绩查询时间入口分享  抖音商城官网是什么_抖音商城官方网址与访问方法  j*a中赋值运算符是什么?  sf漫画官网登录入口直达_sf漫画官方正版网址  windows10怎么更改下载路径_windows10默认存储位置修改教程  《大周列国志》皇帝律令功能介绍  B站怎么快速升级 B站用户等级提升攻略【详解】  视频号视频怎么免费保存到相册?保存到相册需要注意什么?  WPS长文档分栏排版不乱方法_WPS分栏+分节符报纸排版教程  Flexbox布局:实现粘性导航与底部页脚的完美结合  《虎扑》取消评分记录方法  苹果自助维修计划支持哪些设备机型  美发店速赢秘籍  Highcharts雷达图轴线交点数值标注指南  React应用中Commerce.js数据加载与状态管理最佳实践  一点万象签到领积分指南  优化长HTML属性值:SonarQube警告与实用策略  windows10怎么开启卓越性能_windows10电源选项代码激活  《东方财富》条件单关闭方法  如何用mysql开发用户注册登录功能_mysql用户注册登录数据库设计  C++中的explicit关键字有什么作用_C++类型转换控制与explicit使用  在J*a中如何实现在线问答与评分系统_问答评分项目开发方法说明  创客贴登录页面入口 创客贴网页版最新网址链接  智慧职教mooc平台登录网址 智慧职教mooc官网直达  C++如何将字符串转换为大写或小写_C++ transform函数的使用技巧  如何查找哪个composer包引入了特定的依赖?  Golang中的rune与byte类型区别是什么_Golang字符与字节处理详解  C++ static关键字作用_C++静态成员变量与静态函数  抖音网页版官方链接 抖音网页版官网链接入口  抖音官网入口快速访问 抖音网页版账号注册解析  包子漫画在线观看入口 包子漫画网正版全集链接  KFC邀请码怎么使用领额外优惠_KFC邀请码输入方式与额外优惠代码获取方法  12306售票时间最新规定 | 网上订票和车站窗口时间一样吗  鸿蒙单条备忘录如何加密  PDF文件去水印平台入口 PDF水印删除网址  mail.qq.com登录入口 QQ邮箱网页版直达  顺丰快递收费标准查询_如何查看顺丰最新收费价格  钉钉任务无法提醒如何处理 钉钉任务提醒优化方法  纯CSS实现自适应宽度与响应式布局的水平按钮组  《U校园》学生登录入口2025 

 2025-12-05

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.