好吧,所以在这里,我正在努力与这个awk代码,它应该模仿tail命令
num=$1;
{
vect[NR]=$0;
}
END{
for(i=NR-num;i<=NR;i++)
print vect[$i]
}
所以我在这里想要实现的是由awk模拟的tail命令
例如考虑cat somefile | awk -f tail.awk 10
shoud打印文本文件的最后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 -f
BEGIN{
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]
}