@eewynell

Как склеить файлы, при этом отобразив имена этих файлов в конечном?

Есть файлы формата (год)-(месяц)-(день) (час)-(минута)-(секунда).txt
В них содержатся тайм-коды к видео и описания к ним
Есть ли красивое bash выражение, чтобы склеить их в один? Подобного формата:
(год)-(месяц)-(день) (час)-(минута)-(секунда).mkv
строчка из первого файла
другая строчка из первого файла
третья строчка
(...итд)

----------------

(год)-(месяц)-(день) (час)-(минута)-(секунда).mkv
строчка из второго файла
другая строчка из второго файла
(...итд)


UPD:
У меня получилось выражение:
for i in *.txt; do echo "$i" | sed "s/txt$/mkv/; /mkv$/s/^/### /";echo;cat "$i" | awk -F" - " '!/mkv$/ && length($0) > 3 {print "**" $1 "**" " - " $2}';echo;echo "----------------";echo; done > RESULT.md

Есть ли короче / удобнее / красивее / понятнее?
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Напишите простой скрипт (у меня concat.sh)
#!/bin/bash

echo -e "\n--- BEGIN FILE:" $1 "\n" >> $2
cat $1 >> $2
echo -e "\n--- END   FILE:" $1 "\n" >> $2

И запустите
chmod a+x concat.sh
ls -1 *.txt | xargs -n 1 -I {} ./concat.sh {} out

В файле out получите искомое
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы