如何为某些行运行awk。

时间:2013-09-06 09:01:51

标签: linux awk

我想通过awk提取一些行。是否可以执行以下任务:

ls -l | awk 'BEGIN FOR(i=122;i<=129;i++) FNR==i'

我想显示第122到129行的详细信息。

纠正我&amp;我怎么能实现它。?

3 个答案:

答案 0 :(得分:4)

您只需在以下条件中指明NR:

ls -l | awk 'NR>=122 && NR<=129' 

测试

$ cat a
1
2
3
4
5
6
7
8
9
10
$ awk 'NR>=3' a
3
4
5
6
7
8
9
10
$ awk 'NR>=3 && NR<=8' a
3
4
5
6
7
8

答案 1 :(得分:2)

试试这个:

ls -l | awk '(FNR >= 122 && FNR <= 129)'

桑达:

ls -l | sed -ne '122,129p'

示例:

> for (( I = 1; I <= 200; ++I )); do echo "$I : $RANDOM"; done | sed -ne 122,129p
122 : 26175
123 : 25889
124 : 3005
125 : 13134
126 : 27387
127 : 3307
128 : 21926
129 : 2043

答案 2 :(得分:2)

要显示第122到129行(包括两者),请说:

command | awk 'NR>=122&&NR<=129'