如何编写每N行只输出一行的unix筛选器
假设使用以下行输入过滤器标准输入:如何编写每N行只输出一行的unix筛选器,unix,shell,scripting,awk,Unix,Shell,Scripting,Awk,假设使用以下行输入过滤器标准输入: 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 也就是说,您的答案是“awk'NR%4==1””awk'NR%4==1{print}” (GNUsed。未在OSX上测试等)令人耳目一新的是,有人知道awk中的默认操作。 $ yes | cat
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
也就是说,您的答案是“awk'NR%4==1”
”awk'NR%4==1{print}”
(GNUsed
。未在OSX上测试等)令人耳目一新的是,有人知道awk中的默认操作。
$ yes | cat -n | head -10 | awk 'NR % 4 == 1'
1 y
5 y
9 y
awk '{ if ((NR-1) %4 ==0) print}'
awk 'NR%4 == 1 {print}'</etc/hosts
sed -ne '1~4p’