Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写每N行只输出一行的unix筛选器_Unix_Shell_Scripting_Awk - Fatal编程技术网

如何编写每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}”

(GNU
sed
。未在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’