linux - 如何在 vim 中跳过两行并删除两行直到文件末尾?

标签 linux vim awk sed vi

我想跳过两行并删除两行直到文件末尾

如果我的文件包含

111
222
333
444
555
666
777
888
999
1010
1111

我想修改成这样

111
222
555
666
999
1010

最佳答案

使用 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

关于linux - 如何在 vim 中跳过两行并删除两行直到文件末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23202018/

相关文章:

linux - tar -czf 的结果

linux - Nanomsg 组播带宽问题

linux - 用户空间内存编辑程序

vim - 如何从我上次进入的位置打开文件

Bash 合并文件行

linux - 使用 awk 计算每列的平均值,忽略缺失数据

c++ - 如何安装ConvNet库?

vim - 如何在Netrw中更改驱动器以及如何留在givm窗口但退出Netrw?

regex - vim 语法匹配错误([A-Z] 匹配所有字母字符)

awk - 使用 awk 或从 linux 上的命令行删除文件中的列