【发布时间】:2010-09-26 06:02:06
【问题描述】:
假设使用以下行来提供过滤器标准输入:
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
如果有人告诉我如何编写一个仅每 4 行打印一次的脚本,那就更好了,以上面的示例输入为例:
line 1
line 5
line 9
【问题讨论】:
假设使用以下行来提供过滤器标准输入:
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
如果有人告诉我如何编写一个仅每 4 行打印一次的脚本,那就更好了,以上面的示例输入为例:
line 1
line 5
line 9
【问题讨论】:
$ yes | cat -n | head -10 | awk 'NR % 4 == 1'
1 y
5 y
9 y
也就是说,你的答案是“awk 'NR % 4 == 1'”。
【讨论】:
awk '{ if ((NR-1) %4 ==0) print}'
【讨论】:
awk 'NR%4 == 1 {print}'</etc/hosts
当然,用你想要的任何值替换 4。
【讨论】:
sed -ne '1~4p’
(GNU sed。未在 OSX 等上测试)
【讨论】: