Прочтите построчную колонку, исключая заголовок из Processed_files.csv, и выполните поиск каждой строки в Responsed_File_Name.csv

Я хочу прочитать ниже два файла csv построчно (первый столбец) и записать их в другой report.csv. Возьмите строку из первого столбца без расширения (.json) и найдите строку в другом файле без расширения (_SUCCESS.csv, _ERROR.csv, INPROCESS.csv) и, если обнаружите, обновите tenter code herehe report.csv, указав имя входного файла и имя выходного файла. со статусом (УСПЕХ, ОШИБКА, ВХОД, Not_Found)

    **Input files**

    **Processed_files.csv**

    **Input File Name,Start Date**
    Out_ch_pc_88882.77.json,2018/10/26  16.38.54  
    Out_pc_fh_42652.48.json,2018/10/26  16.38.54  
    Out_pc_kl_55684.37.json,2018/10/26  17.38.54  
    Out_pc_gl_34454.66.json,2018/10/27  12.38.54  


    **Responsed_File_Name.csv**


    **Output File Name,End Time/Date**

    Out_ch_pc_88882.77_SUCCESS.csv,2018/10/30  14.53.26
    Out_pc_fh_42652.48_ERROR.csv,2018/10/26  17.40.44
    Out_pc_kl_55684.37_INPROCESS.csv,2018/10/26  18.55.14

    **Output files**

    **Input File Name,Start Date,Output File Name,End Time/Date,Status**

    Out_ch_pc_88882.77.json,2018/10/26  16.38.54,Out_ch_pc_88882.77_SUCCESS.csv,2018/10/30  14.53.26,SUCCESS
    Out_pc_fh_42652.48.json,2018/10/26  16.38.54,Out_pc_fh_42652.48_ERROR.csv,2018/10/26  17.40.44.ERROR
    Out_pc_kl_55684.37.json,2018/10/26  17.38.54,Out_pc_kl_55684.37_INPROCESS.csv,2018/10/26  18.55.14,INPROCESS
    Out_pc_gl_34454.66.json,2018/10/27  12.38.54,,Not_Found


    I tried below script unable get thru.
    Request your kind help. 


Processed_File=/test/Processed_Files.csv
ReportFile=Report.csv
LoopCounter=0
while IFS=, read -r f1 f2
do
if [ $LoopCounter != 0 ]
then 
printf '%s' $f1 >> $ReportFile
                printf '%s' , >> $ReportFile
printf '%s' $f2 >> $ReportFile
                printf '%s' , >> $ReportFile
                printf '%s' , >> $ReportFile
                printf '%s\n' , >> $ReportFile
                #printf '\n'  >> $ReportFile
else
                printf '%s' Input File >> $ReportFile
                printf '%s' , >> $ReportFile
                printf '%s' Start Date >> $ReportFile
                printf '%s' , >> $ReportFile
                printf '%s' Response File Name>> $ReportFile
                printf '%s' , >> $ReportFile
                printf '%s' End Date >> $ReportFile
                printf '%s' , >> $ReportFile
                printf '%s\n' Status>> $ReportFile
fi 
let LoopCounter=LoopCounter+1
done <$Processed_File

Я не вижу твоего сценария.

Samarth 31.10.2018 05:30

Можете ли вы отредактировать вопрос и поместить его туда, чтобы он был более читабельным?

Samarth 31.10.2018 05:41

Я добавил рассматриваемый сценарий. Пожалуйста помоги.

user1376290 31.10.2018 05:51
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это:

awk -F',' 'NR==FNR&&NR>1{split($1,b,"."); split(b[2],status,"_"); map[b[1]"."status[1]]=$0","status[2]} NR!=FNR&&FNR>1{split($1,a,"."); search_string=a[1]"."a[2]; if (search_string in map) {map[search_string]=$0","map[search_string]} else {map[search_string]=$0",,Not_Found"}} END{print "Input File Name,Start Date,Output File Name,End Time/Date,Status"; for (i in map) print map[i]}' Responsed_File_Name.csv Processed_files.csv > Report.csv

Имя входного файла, дата начала, имя выходного файла, время / дата окончания, статус

user1376290 31.10.2018 07:27

Отредактировал ответ.

Samarth 31.10.2018 07:29

Когда я изменяю данные, они не дают правильного вывода Processed_files.csv Имя входного файла, дата начала OutwardHSNSummary_2292_3532_09_2018_31102018033553.035.json, ‌ 31/10/31 15.35.58

user1376290 01.11.2018 07:11

Responsed_File_Name.csv Имя выходного файла, время / дата окончания Исходящий HSNSummary_2292_3532_09_2018_31102018033553.035_SUCCE‌ SS.csv, 2018/10/31 15.42.31

user1376290 01.11.2018 07:12

Отчет (не в надлежащем формате) Имя входного файла, дата начала, имя выходного файла, время / дата окончания, состояние Outward HSNSummary_2292_3532_09_2018_31102018033553.035_SUCCE‌ SS.csv, 2018/10/31 15.42.31,2018 Outward 31.10.2018 15.35.58`` Not_Found

user1376290 01.11.2018 07:12

Отредактировал ответ. Попробуй сейчас. Проблема возникла из-за измененных индексов во входных данных. Попробовали сейчас разобраться с этим в более общем плане.

Samarth 01.11.2018 07:42

Привет, мне нужна ваша помощь в приведенном выше коде awk, я добавил еще два столбца во входной файл STN, Sec, имя входного файла, дату начала, и теперь я хочу, чтобы первые два столбца были такими, как в отчете, и оставались такими же, как раньше .

user1376290 09.11.2018 08:29
STN, сек, имя входного файла, дата начала 234xxxxxx2343, TBTG, Out_ch_pc_88882.77.json, 2018/10/26 16.38.54 Имя выходного файла, время / дата окончания Out_ch_pc_88882.77_SUCCESS.csv, 2018/10/30 14.53.26 STN, сек, имя входного файла, дата начала, имя выходного файла, время / дата окончания, статус 234xx_xxc234, 2018_xx_xxc234, 16.38.54, Out_ch_pc_88882.77_SUCCESS.csv, 2018/10/30 14.53.26, УСПЕХ
user1376290 09.11.2018 08:47

Спасибо, он работал с приведенным ниже кодом. awk -F ',' 'NR == FNR && NR> 1 {split ($ 1, b, "."); split (b [2], статус, "_"); map [b [1] "." status [1]] = $ 0 "," status [2]} NR! = FNR && FNR> 1 {split ($ 1, a, "."); search_string = c [1] "." c [2]; if (search_string на карте) {map [search_string] = $ 0 "," map [search_string]} else {map [search_string] = $ 0 ",, Not_Found"}} END {print "STN, Sec, введите имя файла, дату начала , Имя выходного файла, время / дата окончания, статус "; for (i in map) print map [i]} 'Responsed_File_Name.csv Processed_files.csv> Report.csv

user1376290 09.11.2018 10:31

Другие вопросы по теме