【问题标题】:How to print odd line in unix如何在unix中打印奇数行
【发布时间】:2026-02-12 18:10:02
【问题描述】:

在文件中,值 '20210813_20210816_20210818''20210813_20210816' 以换行符出现。在下面的问题中,有 2 条 DB 记录,但有 4 行而不是 2 行。我想使用 unix 脚本打印我提到的两个值。

这不起作用:

cat filename.txt| awk 'NF' | while read n

do

10th_colum =`echo $n | awk 'NF'| awk '{print $10}'`

done

输入:

20210908 ABC  ICICI            EFT  Rcvd     Staging Not_Rcvd Not_Rcvd Not_Dlvrd
20210813_20210816_20210818
20210908 CDE  HDFC            EFT  Rcvd     Staging Not_Rcvd Not_Rcvd Not_Dlvrd
20210813_20210816

【问题讨论】:

  • 试试:awk 'NF == 1' file

标签: awk echo cat


【解决方案1】:
$ awk '!(NR%2)' file
20210813_20210816_20210818
20210813_20210816

【讨论】:

  • 可惜没有按位与运算符:)
  • @DavidC.Rankin 询问,您将收到 - gnu.org/software/gawk/manual/gawk.html#Bitwise-Functions。但不确定在这种情况下你会如何使用它。
  • awk '(and(NR,1))' ... :) .. PS -- 谢谢。我查了同样的手册,但随着年龄的增长,我一定是一只眼睛失明了,另一只眼睛也看不见了......
  • !(NR%2)(NR%2)==0 在性能方面有什么不同吗?
  • 你能说我如何在表格的单行中回显每个 10 值吗?