Bash слияние файлов - PullRequest
       6

Bash слияние файлов

0 голосов
/ 29 ноября 2018

Я объединю кратные отчеты .csv.

Когда я загружаю, он напишет так:

Файл 1.

Name Name Flavor
AAA  BBB  CCC
AAA  BBB  CCC

Файл 2.

Name Name Flavor
ACB  DHB  123

Я пробовал с "awk "команда.

awk 'FNR== 1{print ""}1' *.csv >> ReportsVol.csv 

С ними объединены все файлы.Но вывод будет следующим:

Name Name Flavor
AAA  BBB  CCC
AAA  BBB  CCC
Name Name Flavor
ACB  DHB  123

Но я хочу, чтобы между каждым файлом была дата.Так что я думаю, что это будет возможно с «меткой времени», но я не знаю, как их развернуть.И описание (Имя, Имя, Аромат) должно быть только один раз написано в верхней части файла.

В конце я хочу что-то вроде этого:

Name Name Flavor
 <timestamp>
AAA  BBB  CCC
ABC  BCD  CDE

<timestamp>
ACB  DHB  123

Заранее спасибо за помощь!

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

не могли бы вы попробовать следующее.

awk '
FNR==1{
  if(++count==1){
     print $0 ORS systime()
  }
  if(count==2){
     print systime()
  }
  next
}
1'   Input_file
0 голосов
/ 30 ноября 2018
awk -v d="$(date)" 'FNR==1{print (NR==1 ? $0 : "") ORS d; next} 1' *.csv

Укажите параметры date, какие пожелаете.

0 голосов
/ 29 ноября 2018

systime() будет работать, если вы используете GNU awk, но вы, вероятно, замените эту функцию на ту, которая возвращает нужную вам дату.

awk 'NR==1;FNR==1{print systime(); next}1' file1 file2

Возвращает

Name Name Flavor
1543486733
AAA  BBB  CCC
AAA  BBB  CCC
1543486733
ACB  DHB  123

IПонятия не имею, какую дату вы хотите, поэтому я использовал systime()


РЕДАКТИРОВАТЬ

Использовать время последней модификации файла:

awk 'NR==1{printf "%s", $0};FNR==1{print ""; system("date -r" FILENAME); next}1' *.csv > ReportsVol.csv

Возвращает:

Name Name Flavor
Thu Nov 29 11:11:49 CET 2018
AAA  BBB  CCC
AAA  BBB  CCC

Thu Nov 29 11:12:07 CET 2018
ACB  DHB  123

Используйте system("date +%s -r " FILENAME), если вы хотите формат даты в секундах с начала эпохи.

Удалите print "";, если вам не нужна пустая строка, разделяющаяфайлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...