删除N行,保留下N行,依此类推

删除N行,保留下N行,依此类推

我想从文件中删除前 12 行,保留接下来的 12 行,并使用 Linux 命令或 shell 脚本重复此操作直至文件末尾。

答案1

通过管道将其通过perl -nle 'print if ((($.-1)/12)%2)'

答案2

使用 GNU 的设施awk

awk -v RS='([^\\n]*\n){12}' '!(FNR % 2){printf "%s", RT}' file

答案3

sed可以选择行的范围,然后删除它们:

sed -i '1~24,+11d' file

答案4

使用tail“反转”

tail -n +5

打印除前五行之外的所有内容。

head -n 5

打印前五行。因此,如果您想打印第 6 行到第 10 行:

cat yourfile | tail -n +5 | head -n 5

相关内容