我正在努力处理这个应该模拟 tail 命令的 awk 代码num=$1;{ vect[NR]=$0;}END{ for(i=NR-num;i<=NR;i++) print vect[$i]}所以我在这里试图实现的是一个由 awk/模拟的尾部命令例如考虑 cat somefile | awk -f tail.awk 10应该打印文本文件的最后 10 行,有什么建议吗? 最佳答案 for(i=NR-num;i<=NR;i++) print vect[$i]$ 表示位置参数。使用简单的 i :for(i=NR-num;i<=NR;i++) print vect[i]对我有用的完整代码是:#!/usr/bin/awk -fBEGIN{ num=ARGV[1]; # Make that arg empty so awk doesn't interpret it as a file name. ARGV[1] = "";}{ vect[NR]=$0;}END{ for(i=NR-num;i<=NR;i++) print vect[i]}您可能应该在 END 中添加一些代码来处理 NR num 的情况。关于linux - 用awk实现尾部,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9101296/ 10-14 04:42