Linux AWK 字段空白就移除此行

..

下述字段使用 Tab 分隔:(ID=2 的 Title 那字段是空的)

ID Title Content
1 AAA C-AAA
2 C-BBB
3 CCC C-CCC

上述若某个字段为空,就要移除那整列,要怎么做呢?

Linux AWK 字段空白就移除此行

AWK NF 可以算字段总数

  • NF:The variable NF is set to the total number of fields in the input record.

上述档案字段有三个,所以不满三个字段的就整行移除

  • awk 'NF==3' filename > filter_filename # 印出字段资料为3的,在导去想要的档案即可
  • awk 'NF>2' filename > filter_filename # 字段数量超过2的才印出来

另外一种直接看 最后一栏 的变量,若那个变量为空,一样就不要印出来

  • awk '!($3 =="")' filename > filter_name

若要将某个字段(列)移除

  • cat filename | awk '$NF="";{print $0}' # 将 最后一栏 的资料移除
  • cat filename | awk '$3="";{print $0}' # 将 第3列 的资料移除
  • cat filename | awk '$1=$3="";{print $0}' # 将 第1,3列 的资料移除
  • cat filename | awk '{$(NF-1)=$NF="";print $0}' # 将最后两列的资料移除

相关网页

想在手机阅读更多Linux资讯?下载【香港硅谷】Android应用
分享到Facebook