У меня есть сценарий awk, который читает вывод печатной рекламы, последние 3 столбца были объединены, при запуске сценария предполагается, что объединенные столбцы состоят из 18 цифр, а не до 18 цифр. заполнены нулями, чтобы соответствовать требуемому формату.
Это мой CSV-файл, который читает скрипт awk:
Account number (preferred / formatted),Customer reference,Posting date,Account currency,Transaction amount
750856653,233420,3/9/2019,USD,-2092.99
750856653,233417,3/9/2019,USD,-2856.15
750856653,233426,3/9/2019,USD,-2392.25
750856653,233414,3/9/2019,USD,-1733.22
750856653,233424,3/9/2019,USD,-1850.31
750856653,233403,3/9/2019,USD,-1850.32
750856653,233413,3/9/2019,USD,-1439.58
750856653,233431,3/9/2019,USD,-186.66
это мой текущий вывод при запуске скрипта: (Последний столбец должениметь 18 цифр, но, как и первые 3 строки в последнем столбце.)
750-85665-3 0000233446 09162019000000230644
750-85665-3 0000233435 09162019000000173321
750-85665-3 0000233442 09162019000000219319
750-85665-3 0000233443 0916201900000097416
750-85665-3 0000233429 0918201900000069263
750-85665-3 0000233447 092320190000006619
750-85665-3 0000233450 092320190000001461
750-85665-3 0000233451 0923201900000035631
Мой код:
awk '
BEGIN{ FS=","
}
FNR==1{
print
next
}
$2!~/NONREF/{
$1=substr($1,1,3)"-"substr($1,4,5)"-"substr($1,length($1))
$2="0000"$2
split($3,array,"/")
$3=sprintf("%02d%02d%s",array[2],array[1],array[3])
gsub(/^-|\./,"",$NF)
$3=$3"000000"$NF
print $1,$2,$3
}
' Input_file
Это мой желаемый вывод, каким я хочу, чтобы последний столбец был,все 18 цифр с заполненными нулями.
750-85665-3 0000219839 090519000000017170
750-85665-3 0000233423 090519000000087349
750-85665-3 0000233416 090619000000047765
750-85665-3 0000233425 090619000000129305
750-85665-3 0000233421 090919000000199722
750-85665-3 0000219838 091019000000026502
750-85665-3 0000233415 091019000000169140
750-85665-3 0000233419 091119000000099291
750-85665-3 0000233433 091319000000188880
750-85665-3 0000233438 091319000000296821
750-85665-3 0000233452 091619000000323724
750-85665-3 0000233441 091619000000190742
750-85665-3 0000233446 091619000000230644
РЕДАКТИРОВАТЬ (автор Ravinder): этот дополнительный вопрос выглядит для Вывод CSV-файла некорректен один, хотя OP по-прежнему необходимо добавлять образцыдля всех пользователей, понимающих цели, думал добавить это здесь.