2016-08-01 2 views
0

Я использую ниже awk командыкоманда Awk не работает с или условием

awk -F'\t' 'BEGIN {OFS=",";} $9=="Consumer" && $4!="" && ($12!="" OR $13!="") {print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16}' TEL_DATA_JUL2016_fxtcupd1.TXT 

Где я хочу по крайней мере одно поле из 12 или 13 должен быть не нулевым, но команда не дает желаемого результата.

Может кто-нибудь объяснить, в чем проблема в приведенной выше команде.

Благодаря

+3

Не 'OR'. Это должно быть '||'. – sat

+0

Спасибо @sat u сохранить мою жизнь :) –

ответ

1

логический оператор ИЛИ должен быть ||. Не OR. Ваш awk должен быть,

awk -F'\t' 'BEGIN{OFS=","} $9=="Consumer" && $4!="" && ($12!="" || $13!="") {print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16}' file