Sed с переадресацией портов в socat?

Я только что наткнулся на этот пост, есть -по крайней мере сегодня -более простоеdate-решение. Использование фреймворка в ответе @Gilles Quenot (написало бы комментарий к его ответчику, но недостаточно репутации):

while read d1_1 d1_2 d2_1 d2_2
do
    date -d "$d2_1 $d2_2 $(date -d "$d1_1 $d1_2" +%s.%N) seconds ago" +%s.%N
done << END
2012-09-13 15:00:29,290 2012-09-13 15:00:29,297
END

Результат:

$./time_elapsed.sh 
0.007000000

Использование %3Nвместо %Nприведет к усечению вывода до миллисекунд.

0
07.01.2020, 19:06
1 ответ

Вам просто не хватает бита fork. Тогда командная строка будет:

socat TCP-LISTEN:8002,fork SYSTEM:/path/to/replace.sh

тогда файл /path/to/replace.sh должен иметь разрешение на выполнение и может содержать что-то вроде (это изменит все 'a' на 'b'):

#!/bin/bash

sed -u 's/a/b/g'

Если вы используете sed, важно добавить флаг-u(unbuffered ).

0
28.01.2020, 02:57

Теги

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