我想跳过两行并删除两行直到文件末尾
如果我的文件包含
111
222
333
444
555
666
777
888
999
1010
1111
我想将其修改为
111
222
555
666
999
1010
答案 0 :(得分:6)
使用awk
awk 'NR%4==1 || NR%4==2' file
111
222
555
666
999
1010
NR%4==1
打印第1,5,9行等
NR%4==2
打印第2,6,10行等
所以它给出了1,2,5,6,9,19等行
其他版本:
awk 'NR%4~/^[12]$/' #JS웃
awk '(NR-1)%4<2' #Ed Morton
答案 1 :(得分:4)
使用sed
:
sed -n 'p;n;p;n;n' inputfile
对于您的输入,它会产生:
111
222
555
666
999
1010
使用GNU sed:
sed -n '1~4p;2~4p' inputfile
为了好玩,还可以使用perl
:
perl -ne 'print if grep($_==$.%4,(1,2))' inputfile
答案 2 :(得分:2)
这可能适合你(GNU sed):
sed 'n;n;$!N;d' file
答案 3 :(得分:0)
仅限vim解决方案:
:%norm Jj2dd Aaaaa
然后
:%s/aaaa /\r/g
你需要手动拆分第一行(有n),休息一切就绪。