Конкатенация последовательных файлов

Вы настроили своего пользователя так, чтобы он не мог войти в систему. Хорошо, это хорошая привычка не допускать входа пользователя демона, такого как tomcat , apache , mysal , ... .

Теперь ваше единственное решение - переключиться на этого пользователя как root:

sudo su -l -s /bin/bash tomcat

Здесь, как root ( sudo ), вы выполняете вход как пользователь tomcat ( su -l кот ). Параметр -s / bin / необходим, поскольку оболочка по умолчанию будет / bin / false , что немедленно завершит сеанс.

2
15.03.2017, 12:34
3 ответа

Использовать раскладку скобок Bash.

cat Video{{1..9},{10..35}}.mpg > outputfile

В будущем используйте заполнение 0 при первоначальном именовании файлов, чтобы вы могли просто сделать:

cat Video{01..35}.mpg > outputfile
0
27.01.2020, 22:41

Вот один способ:

cat $(ls Video*.mpg | sort -to -k2 -n )>outputfile  

ls Видео * .mpg - список файлов на основе шаблона
sort -to -k2 -n - сортировка файлов с использованием o в качестве разделителя, второго ключа и - n для числового

* Помните, что использование ls для неизвестного списка файлов может быть непредсказуемым, но это относительно небольшой и известный список, основанный на вопросе.

-1
27.01.2020, 22:41

С zsh и ffmpeg :

files=(Video*.mpg(n))
ffmpeg -f concat -safe 0 -i <(printf 'file %s\n' ${(qq)files}) -c copy output.mpg

(n) в zsh является glob квалификатор для численной сортировки.(qq) — флаг раскрытия переменной, заключаемый в одинарные кавычки. Я не гарантирую, что он цитирует точно так же, как ожидалось ffmpeg, если имена файлов содержат одинарные кавычки, обратную косую черту или символы новой строки.

Насколько я понимаю, вышеизложенное предполагает, что один и тот же кодек используется во всех файлах mpg.

AFAICT, в частности, для файлов mpeg файлы также могут быть объединены на уровне файлов и по-прежнему могут воспроизводиться большинством игроков, поэтому вы также можете просто сделать (все еще с zsh) :

cat Video*.mpg(n) > output.mpg

Хотя zsh устанавливается по умолчанию в macOS, это не оболочка по умолчанию, которую вы получаете в терминале, если только вы явно не изменили оболочку входа по умолчанию bash . Таким образом, вам нужно либо сначала запустить zsh, введя zsh в приглашении оболочки bash в терминале, либо вместо этого запустить:

zsh -c 'cat Video*.mpg(n) > output.mpg'

.

1
27.01.2020, 22:41

Теги

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