执行时:
CDialog
我明白了:
awk -F '|' 'BEGIN{print "head"}{print $3|"head"}END{print "bottom"}' d16.txt
相反,我想要这个:
head
bottom
3823
9386
7152
8137
1933
1137
3921
2585
9637
0626
注意head
3823
9386
7152
8137
1933
1137
3921
2585
9637
0626
bottom
命令,它确实存在,因为如果我在整个awk命令之后使用它,我将丢失底部字符串,但无论如何它都没有表现出预期。
答案 0 :(得分:2)
为了避免需要调用head,只需添加一个条件:
awk -F '|' 'BEGIN{print "head"}NR<=10{print $3}END{print "bottom"}' d16.txt
现在,您仍然只能按照正确的顺序获得前10行,而无需调用单独的程序。
正如其他人在评论中提到的那样,您可以通过退出10行而不是阅读整个文件来提高效率:
awk -F '|' 'BEGIN{print "head"}{print $3}NR==10{exit}END{print "bottom"}' d16.txt
对于一个小文件,这不会产生太大影响,但是在较大的文件上使用这种方法是值得的。