заменить шаблон новой строкой во вводе канала (не файл, а канал)

У меня была эта проблема в течение длительного времени, поэтому я решил поделиться своим решением.

Проблема заключалась в том, что Google Chrome работает в фоновом режиме и не закрывается при выключении компьютера. Поэтому лучшее решение — отключить эту функцию.

  1. Перейдите в настройки Google Chrome.
  2. Нажмите «Дополнительно».
  3. Перейдите в «Система».
  4. Отключите параметр «Продолжать запуск фоновых приложений, когда Google Chrome закрыт».

enter image description here

Это решило это для меня. Надеюсь, поможет.

2
12.11.2021, 21:02
1 ответ

Да, вас убивает буферизация :sed пытается прочитать строку .

Это может помочь:

input=""
netcat xxx | while IFS= read -r -d "" -n 1 char; do
    input+=$char
    if [[ $input == *"    " ]]; then
        echo "${input%    }"
        output=""
    fi
done | yourscript.sh

Во-вторых, было бы лучше :определить разделитель входных записей равным 4 пробелам и печатать каждую запись (несколько символов -RS — это функция GNU awk)

netcat xxx | gawk -v RS="    " 1 | yourscript.sh

Этот бесконечный -однострочный ввод -можно смоделировать с помощью функции bash:

netcat() { while true; do printf '%d    ' $RANDOM; done; }
1
12.11.2021, 23:59

Теги

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