2016-07-21 21 views
0

我如何用awk筛选列?过滤使用awk柱+ if语句不工作

这是alll列:

$ awk -F'|' 'NR==1{print $7} NR>1{print $7;}' head_datafile_pipe_deleimiter.csv 
"Product_Description" 
"PREPAY PLUS - $0 -" 
"$39.95 Plan" 
"$69.95 Plan" 
"$29.95 Carryover Plan 1GB" 
"PREPAY PLUS - $0 -" 
"$19 CO COMBO - NOT RECURRENT" 
"$39.95 Plan" 
"PREPAY PLUS - $1 - #33" 
"PREPAY PLUS - $0 -" 

现在我只是想表明这个"PREPAY PLUS - $0 -"线,但我如果OES似乎并不奏效。 如何让它工作?

$ awk -F'|' 'NR==1{print $7} NR>1{if($7=="PREPAY PLUS - $0 -") print $7;}' head_datafile_pipe_deleimiter.csv 
"Product_Description" 
+1

我认为双引号缺失。 –

+0

试过,但没有喜悦'$ awk的-F '|' 'NR == 1 {打印$ 7} NR> 1 {如果($ 7 == “” 预付款PLUS - $ 0 - “”)打印$ 7;}' head_datafile_pipe_deleimiter.csv “PRODUCT_DESCRIPTION”'我知道它是沿着这些路线的东西。 – HattrickNZ

+0

您可以张贴样本文件输入,你希望..可能是一个简单的'grep'命令就足够 – Sundeep

回答

1
$ awk -F'|' -v dq='"' 'NR==1{print $7} NR>1{if($1==dq"PREPAY PLUS - $0 -"dq) print $7;}' test.in 
"Product_Description" 
"PREPAY PLUS - $0 -" 
"PREPAY PLUS - $0 -" 
"PREPAY PLUS - $0 -" 
+0

TKS就是这样'awk的-F样本输出“|” -v DQ = '“' NR == 1 {打印$ 7} NR> 1 {如果($ 7 == DQ ”预付款PLUS - $ 0 - “ DQ)打印$ 7;}”head_datafile_pipe_deleimiter.csv “PRODUCT_DESCRIPTION” “预付款PLUS - $ 0 - ” “预付款PLUS - $ 0 - ” “预付款PLUS - $ 0 - ” ' – HattrickNZ