我正在学习 awk/gawk。所以最近我只是尝试用它来解决任何问题,以获得更多的实践机会。
昨天同事问了一个问题
“如何从文件中删除第一行和最后一行”
. 我知道那sed '1d;$d' file
会奏效。head/tail
即使性能不佳,也可以正常工作。我告诉他sed,他很高兴。
后来,我试图写一个 awk 单行:到目前为止我得到的是:
awk 'NR>1{a[++k]=$0}END{for(i=1;i<k;i++)print a[i]}'
这会将整个文件存储在数组中,只是为了跳过最后一行。我觉得应该有一种更简单(或更好)的方法来做到这一点。
(如果没有更简单、更快或更好的方法,我会删除这个问题)