0

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

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

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

纠正我以及我如何才能实现它。?

4

3 回答 3

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
于 2013-09-06T09:05:26.690 回答
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
于 2013-09-06T09:05:41.063 回答
2

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

command | awk 'NR>=122&&NR<=129'
于 2013-09-06T09:05:58.367 回答