Несколько опций:
var1=uniform var2=2350 var3=0.076662 var4=2.78
printf '%-15s %-10s %-12s %s\n' \
case elems messing nlsys \
"$var1" "$var2" "$var3" "$var4"
printf '%s\t%s\t%s\t%s\n' \
case elems messing nlsys \
"$var1" "$var2" "$var3" "$var4" |
expand -t 15,25,37
printf '%s\t%s\t%s\t%s\n' \
case elems messing nlsys \
"$var1" "$var2" "$var3" "$var4" |
column -t -s $'\t'
столбец является нестандартной командой, некоторые реализации/версии не поддерживают-s опцию. Это вычисляет ширину столбца на основе входа, но это означает, что может только начать отображаться, после того как весь вход питался к нему. $'...'
ksh93 синтаксис, также найденный в zsh и ударе.
С zsh:
values=(
case elems messing nlsys
"$var1" "$var2" "$var3" "$var4"
)
print -arC4 -- "$values[@]"
Вместо того, чтобы выполнить их как 2 отдельных команды можно выполнить их на одной командной строке как так:
$ ffmpeg -i input.avi -pass 1 -an output.mp4 && \
ffmpeg -i input.avi -pass 2 -ab 128k -y output.mp4
Различие &&
нотация, которая выполнит вторую команду (2-я передача), только если первая команда была успешна. Они - все еще 2 отдельных операции, но это позволит Вам выполнять одну командную строку по сравнению с 2, которые необходимо было сделать ранее.
Также это будет обладать преимуществом выполнения 2-й передачи непосредственно после завершения 1-й передачи, где с Вашим путем необходимо было бы по существу ожидать 1-го для окончания перед начинанием 2-го.
Я использую mencoder, но уверен, что нечто подобное можно сделать с помощью ffmpeg/avconv, используя устройство FIFO:
$ mkfifo passlog
$ mencoder infile.flv -passlogfile passlog........... pass=1 &
$ mencoder infile.flv -passlogfile passlog........... pass=2
ffmpeg -pass 1 -passlogfile - | ffmpeg -pass 2 -passlogfile -
закодировать обе передачи сразу? – JamesTheAwesomeDude 18.05.2015, 23:35