Вы можете сделать это с gawk
вот так ...
Просто прочитайте все файлы, один за другим, и сохраните их в массив. Массив индексируется двумя числами, во-первых, номером строки в текущем файле (FNR
), а во-вторых, столбцом, который я увеличиваю каждый раз, когда мы встречаем новый файл в блоке BEGINFILE
.
Затем в конце выведите весь массив:
gawk 'BEGINFILE{ ++col } # New file, increment column number
{ X[FNR SEP col]=$0; rows=FNR } # Save datum into array X, indexed by current record number and col
END { for(r=1;r<=rows;r++){
comma=","
for(c=1;c<=col;c++){
if(c==col)comma=""
printf("%s%s",X[r SEP c],comma)
}
printf("\n")
}
}' chirps*
SEP
- это просто неиспользуемый символ, который разделяет индексы. Я использую gawk
, потому что BEGINFILE
полезен для увеличения номера столбца.
Сохраните все вышеперечисленное в вашей домашней директории как merge
. Затем запустите терминал и, только один раз, сделайте его исполняемым с помощью команды:
chmod +x merge
Теперь перейдите в каталог, в котором находятся ваши щебетания, с помощью команды:
cd subdirectory/where/chirps/are
Теперь вы можете запустить скрипт с:
$HOME/merge
Вывод будет проноситься мимо экрана. Если вы хотите это в файле, используйте:
$HOME/merge > merged.csv