news 2026/8/15 9:46:18

Linux命令-tac(反向显示文件内容)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux命令-tac(反向显示文件内容)

Linux命令-tac(反向显示文件内容)

    • 快速参考
    • 基本用法
    • 实际应用场景
    • 分隔符模式
    • 正则表达式分隔符
    • before/after 上下文
    • 与其他命令配合
    • 实战脚本
    • 对比 tac 与其他反向方法
    • 选项速查

taccat的反转版本,按行将文件内容从最后一行到第一行反向输出。它得名于将cat倒过来拼写,功能也恰好相反。tac在处理日志文件(查看最新条目优先)、倒序处理文本等场景中非常实用。

快速参考

tac[选项][文件...]

tac默认按行反转(以\n为分隔符),但可以通过-s选项指定其他分隔符,实现按段落、按记录的反转输出。

基本用法

# 反向显示文件(最后一行先输出)tacfile.txt# 反向显示多个文件tacfile1.txt file2.txt file3.txt# 从标准输入读取echo-e"第一行\n第二行\n第三行"|tac# 输出:# 第三行# 第二行# 第一行# 反向显示 /etc/passwd 的前几行tac/etc/passwd|head-5# 查看文件最后修改的部分(倒序)tacconfig.yml|head-20

实际应用场景

# 场景1: 查看日志文件最新内容(类似 tail)tac/var/log/syslog|head-30# 场景2: 反向显示历史命令(最新命令在前)tac~/.bash_history|head-20# 场景3: 查看配置文件最后的条目tac/etc/fstab|head-5# 场景4: 反转 CSV 文件(最新记录在前)tacdata.csv|head-10# 场景5: 反向查看 crontab 条目sudotac/var/spool/cron/crontabs/root|head-10

分隔符模式

# -s 指定分隔符(默认为换行符)# 以空行为分隔符,按段落反转tac-s'^\n$'-rparagraphs.txt# 以 "---" 为分隔符反转tac-s'^---$'-rrecords.txt# 以逗号为分隔符反转echo"a,b,c,d,e"|tac-s','-r# 以制表符分隔printf"name\tvalue\nage\t25\ncity\tBJ\n"|tac-s'\t'-r# 以分号分隔echo"cmd1;cmd2;cmd3;cmd4"|tac-s';'-r

正则表达式分隔符

# -r 使用正则表达式匹配分隔符# 按空行分隔段落并反转tac-r-s'^$'document.txt# 按多个连续空行分隔tac-r-s'^\n\n+'document.txt# 按 HTTP 请求分隔(空行分隔 header 和 body)tac-r-s'\r\n\r\n'http_requests.txt# 按日期行分隔tac-r-s'^## \['changelog.md# 按行首标记分隔tac-r-s'^---'yaml_content.txt

before/after 上下文

# -b 在分隔符前匹配tac-b-s'---'records.txt# 在分隔符后匹配(默认行为)tac-a-s'---'records.txt# 组合使用tac-ab-s'\n\n'paragraphs.txt

与其他命令配合

# tac + grep: 从文件末尾开始搜索tacerror.log|grep-m5"ERROR"# tac + head: 获取最后 N 行的另一种方式tacfile.txt|head-5# 等效于 tail -n 5# tac + awk: 反向处理并重新编号tacdata.txt|awk'{print NR": "$0}'|tac# tac + sort: 先反转再排序tacnames.txt|sort|tac# tac + sed: 反转后修改tacaccess.log|sed's/GET/POST/'|tac>modified.log# tac 过滤空白行(从末尾开始)tacfile.txt|sed'/^$/d'|tac>no_blanks.txt# 反向去重tacfile.txt|awk'!seen[$0]++'|tac

实战脚本

#!/bin/bash# 日志分析脚本 - 从最新记录开始分析# 用法: ./analyze_recent.sh error.logLOG_FILE="${1:-/var/log/syslog}"LINES="${2:-50}"echo"===== 最近${LINES}条日志 ====="echo""# 从最新记录开始查看tac"$LOG_FILE"|head-n"$LINES"|tacecho""echo"===== 错误统计(最近${LINES}条) ====="# 统计最近 N 条中的错误类型tac"$LOG_FILE"|head-n"$LINES"|grep-i"error\|warn\|fail"|\awk-F:'{print $1}'|sort|uniq-c|sort-rn
#!/bin/bash# 反向显示文件并添加行号# 用法: ./rtac.sh file.txtFILE="${1:-/dev/stdin}"TOTAL=$(wc-l<"$FILE")# 方法1: 使用 awkawk-vn=$(wc-l<"$FILE")'{print n": "$0; n--}'"$FILE"# 方法2: 使用 tac + nl + tactac"$FILE"|nl|tac

对比 tac 与其他反向方法

# 方法1: tac(最快)timetaclarge_file.txt>/dev/null# 方法2: tail -r(BSD 系统)timetail-rlarge_file.txt>/dev/null2>&1# 方法3: sed(不推荐大文件)timesed'1!G;h;$!d'large_file.txt>/dev/null# 方法4: awktimeawk'{a[NR]=$0} END{for(i=NR;i>0;i--) print a[i]}'large_file.txt>/dev/null# 方法5: Perltimeperl-e'print reverse <>'large_file.txt>/dev/null

选项速查

选项说明
-b在分隔符前附加
-r将分隔符作为正则表达式
-s SEP指定分隔符(默认\n
--help显示帮助
--version显示版本

tac是 GNU coreutils 中的小巧工具,但其在日志分析和文本处理中有着不可替代的地位。当你需要"从末尾开始"处理文件时,tac是最高效的选择。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/15 9:45:42

RabbitMQ实战:从零搭建消息队列,掌握高可用与可靠性投递

1. 为什么学RabbitMQ&#xff0c;以及学完能解决什么问题如果你正在准备Java后端、中间件或系统架构相关的面试&#xff0c;或者工作中需要处理服务解耦、异步任务、流量削峰&#xff0c;那RabbitMQ是你绕不开的一个核心组件。它不是一个“学了更好”的可选项&#xff0c;而是很…

作者头像 李华
网站建设 2026/8/15 9:44:21

为什么低延迟 Decode 优先选 EP8 × DP4

这张图展示的是 MoE 模型在推理&#xff08;Inference&#xff09;部署时&#xff0c;最核心的架构选型与调优决策树。 以 32 张 GPU&#xff08;假设单机 8 卡&#xff0c;共 4 台机器&#xff09;为例&#xff0c;它阐述了如何在 EP&#xff08;专家并行&#xff09; 和 DP&a…

作者头像 李华
网站建设 2026/8/15 9:43:26

入门尤克里里选23还是26?新手完整购琴攻略附高性价比型号推荐

很多新手入坑尤克里里&#xff0c;第一步就卡在尺寸选择上&#xff0c;纠结23寸和26寸怎么选&#xff0c;再加上分不清板材、木材、工艺差异&#xff0c;很容易盲目入手玩具琴&#xff0c;最后因手感差、音色烂劝退。新手入门尤克里里完整选琴攻略其实新手选琴不用跟风&#xf…

作者头像 李华
网站建设 2026/8/15 9:42:42

Linux内存排查:当top显示内存不足但进程占用总和却对不上时怎么办

1. 问题现象&#xff1a;当TOP告诉你内存快满了&#xff0c;但“凶手”却消失了相信很多运维和开发的朋友都遇到过这个让人头疼的场景&#xff1a;服务器或者个人电脑开始变得卡顿&#xff0c;响应迟缓。你熟练地打开终端&#xff0c;敲下top命令&#xff0c;或者用htop看得更直…

作者头像 李华
网站建设 2026/8/15 9:39:37

减压App开发好处和相关功能介绍

无论是哪个年龄段都会有自己的压力&#xff0c;学生有学生时代的烦扰&#xff0c;上班族有工作的压力&#xff0c;老人也会有内心的孤独。正因为在生活中会遇到不顺心的事情&#xff0c;所以才会有各种各样的压力只有合理的将压力释放&#xff0c;才能让自己的生活不会偏离原本…

作者头像 李华
网站建设 2026/8/15 9:39:28

Ps无锯齿抠图教程:4 套方案搞定人像、电商商品素材

1. 本文解决的实际问题与锯齿产生原因实际痛点很多设计师完成抠图&#xff0c;在白色画布预览效果尚可&#xff1b;一旦更换深色背景、用于电商主图、海报合成&#xff0c;就暴露出各类边缘问题&#xff1a;物体边缘锯齿、毛刺&#xff0c;放大之后颗粒感严重&#xff1b;外围出…

作者头像 李华