你好,
这也许很简单,但我现在不明白。在 Linux 中,shell 中,给定一个文本文件,我该如何执行类似 cat filename 的操作,以便我只看到第一行、第三行、5、7、9 等等?
如果不使用 cat,则使用另一个命令
谢谢
答案1
使用awk
:awk '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"