Unix переменная передачи awk как fileName - PullRequest
0 голосов
/ 14 сентября 2018

Я использую следующую команду для разделения одного файла на два.

currentCouponFile="$DIR/kozo_agency_current_coupon_ts-"$HMD_EFF_DT".csv"
agencySpreadFile="$DIR/kozo_agency_spread_ts-"$HMD_EFF_DT".csv"

awk -F '|' 'BEGIN{OFS=","};{$1=$1; if(NF == 2){print > "$currentCouponFile"}else{ print > "$agencySpreadFile"}}' $fileName

Выполнение эха на currentCouponFile и agencySpreadFile дает мне желаемое имя файла.

Однако полученный файл создается как $agencySpreadFile и $currentCouponFile. Не в формате .csv.

Есть решение?

1 Ответ

0 голосов
/ 14 сентября 2018

Не используйте переменные оболочки внутри awk.

currentCouponFile="$DIR/kozo_agency_current_coupon_ts-"$HMD_EFF_DT".csv"
agencySpreadFile="$DIR/kozo_agency_spread_ts-"$HMD_EFF_DT".csv"

    awk -F '|' -v current="$currentCouponFile" -v agency="$agencySpreadFile" '
       BEGIN{OFS=","}
       {
       $1=$1;
       if(NF == 2) 
          {print > current}
       else
          {print > agency}
       }' $fileName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...