基本上我需要打印2行然后删除两行,依此类推.
awk 'BEGIN {count = 0} if(count == 4){count = 0} else if(count <= 1) {print,count++} else {count++}' f4
Run Code Online (Sandbox Code Playgroud)
我收到语法错误.
要么
awk '{count = 0; if(count == 4)count = 0; else if(count <= 1) print count++; else count++;}' f4
Run Code Online (Sandbox Code Playgroud)
它打印全部为零.
我也试过了
awk 'NR%3 && NR%4' f4
Run Code Online (Sandbox Code Playgroud)
这是接近但3和4的倍数不打印.
谢谢
编辑:GOT IT!
awk 'BEGIN{count = 0};{ if(count == 3)count = 0; else if(count <= 1) {print; count=count+1;} else count=count+1;}' f4
Run Code Online (Sandbox Code Playgroud)
这应该是最简短和最简单的解释之一
awk 'NR%4==1 || NR%4==2'
Run Code Online (Sandbox Code Playgroud)
NR%4==1将打印每一forth行开始one
NR%4==2将打印每forth行开始two
||这是一个逻辑or
鉴于此文件
cat file
one 1
two 2
three 3
four 4
five 5
six 6
seven 7
eight 8
nine 9
ten 10
eleven 11
twelve 12
thirteen 13
fourteen 14
fifteen 15
sixteen 16
seventeen 17
eighteen 18
nineteen 19
twenty 20
Run Code Online (Sandbox Code Playgroud)
awk 'NR%4==1 || NR%4==2' file
Run Code Online (Sandbox Code Playgroud)
得到:
one 1
two 2
five 5
six 6
nine 9
ten 10
thirteen 13
fourteen 14
seventeen 17
eighteen 18
Run Code Online (Sandbox Code Playgroud)
使用的变体 &&
awk 'NR%4 && NR%4!=3'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1062 次 |
| 最近记录: |