Как разобрать строку на номер порта в ksh

Вы не сделали ничего плохого, mbuffer повторно открывает / dev / tty , если он не может читать из своей стандартной ошибки , нарушая ваше перенаправление.

Вы можете использовать параметр -q , чтобы отключить вывод состояния. Согласно документации, вы можете использовать -l для записи статуса в файл с

mbuffer -m 60M -f -o /tmp/temp_video.h264 -l errors.txt &

, но журнал статуса содержит ошибки: он всегда переходит к стандартной ошибке , а не к журналу .

Вот как это исправить.

  1. Загрузите исходный код пакета

     apt-get source mbuffer
    
  2. Добавьте патч (для этого требуется пакет quilt )

     cd mbuffer-20161115
    одеяло новый 13-status-log.patch
    одеяло добавить mbuffer.c
    
  3. Отредактируйте mbuffer.c и измените строку 461 (в Debian 8) или 472 (в Debian 9) на

     nw = write (Log, buf, strlen (buf));
    
  4. Сохранить патч

     обновление квилта
    
  5. Перестройте пакет (для этого требуются пакеты dpkg-dev и devscripts )

     dch -n «Исправить журнал состояния, чтобы учесть параметр -l».
    dch -r игнорируется
    dpkg-buildpackage -us -uc
    

    (если dpkg-buildpackage жалуется на отсутствие зависимостей, установите их и повторите попытку)

  6. Установите обновленный пакет

     sudo dpkg -i ../mbuffer_*-?.1_*. деб
    

1
29.12.2016, 22:55
2 ответа

Похоже на несложную работу для sed :

docker port <container-name> | sed 's/^.*:\([0-9]*\)$/\1/'

Или, если хотите, awk :

docker port <container-name> | awk -F':' '{print $NF}'
1
27.01.2020, 23:46
docker port <container-name> | while read -r line;do echo ${line##*:};done
0
27.01.2020, 23:46

Теги

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