使用 cat 仅显示奇数行

使用 cat 仅显示奇数行

你好,

这也许很简单,但我现在不明白。在 Linux 中,shell 中,给定一个文本文件,我该如何执行类似 cat filename 的操作,以便我只看到第一行、第三行、5、7、9 等等?

如果不使用 cat,则使用另一个命令

谢谢

答案1

使用awkawk 'NR % 2 == 0' filename

编辑:删除{print},如 ghostdog74 的回答中所示,并由 Roberto Bonvallet 评论。

答案2

或者类似

sed -n 'p;n' filename

有关解释,请查阅 的手册页sed

答案3

使用 sed:

sed -n 1~2p filename

答案4

使用 awk 的两种方法

$ awk '{getline;print}' file # the equivalent of the selected sed answer
$ awk 'NR%2==0' file

或者只使用 shell

i=1; while read -r line; do [ $((i++ % 2)) -eq 0 ] && echo $line; done <"file"

相关内容