首页 > 解决方案 > 我想使用 awk 从第 27 行开始删除每第 n 行

问题描述

我有一个大文本文件,它的标题有 27 行。我想将标题保留在新文件中,但是在数据开始的第 28 行我只想保留每 10 行。

所以我的新文件看起来就像我的原始文件,它将包含 27 行标题,但不是所有数据都在那里,只有每 10 行将包含在新文件中。

我一直在尝试使用'awk',我也尝试过'sed'我可以让它每10行给我一次,但我不能让它包含标题行,即从第28行开始,然后每10行给一次

标签: awk

解决方案


请您尝试以下操作。

awk 'FNR<=27{print;next} ++count%10==0{print;count=""}'  Input_file

或者如果你想让它更通用,所以在这里添加变量,可以在这里更改变量值并根据需要获得结果。

awk -v lines_till_print="27"  -v nth_line_print="10" '
FNR<=lines_till_print{
  print
  next
}
++count%nth_line_print==0{
  print
  count=""
}
'  Input_file

推荐阅读