我想通过awk提取一些行。是否可以执行以下任务:
ls -l | awk 'BEGIN FOR(i=122;i<=129;i++) FNR==i'
我想显示第122到129行的详细信息。
纠正我&amp;我怎么能实现它。?
答案 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'