我想从文件中删除前 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