GNU awk может обрабатывать поля как последовательности экранированных символов или не -двоеточия -или -символов обратной косой черты (см. этот ответ ), поэтому следующее должно работать. Не очень эффективное, но хотя бы решение...
#!/bin/bash
line="WiFi:00\:0A\:97\:6F\:7B\:AC:165:5660 MHz:15:"
# line=`nmcli -f SSID,BSSID,CHAN,FREQ,SIGNAL,SECURITY -t dev wifi`
for i in 1 2 3 4 5; do
echo $line | gawk -v FPAT='(\\\\.|[^\\\\:])*' '{print $'$i'}'
done
Нет , лучшего пути нет.
Когда вы копируете аудиопоток с помощью -c:a copy
, вы не выполняете повторное -кодирование,так что вы получаете точно такое же качество в источнике. Единственный способ улучшить качество по сравнению с тем, что обеспечивает источник, — это использовать программное обеспечение для редактирования звука, чтобы удалить шум или использовать другие функции.
Вы не упомянули, почему вы повторно -закодировали видео, и если вы хотите только вырезать видео, лучшим способом будет удалить перекодирование. -кодирование и выполнение
$ ffmpeg -ss 00:11:50 -i input.mkv -t 165 -c copy output.mkv