netfilter / iptables: почему бы не использовать необработанную таблицу?

Когда вы не можете использовать команду s с флагом g, один из подходов заключается в использовании команды s в цикле с командой t (переход обусловлен успехом команды s).

Здесь:

sed -e :1 -e 's/\([^ ]\)\([^ ]\{1,\}\)$/\1 \2/;t1'

То есть заменяет не пробел, за которым следует последовательность из 1 или более не пробелов в конце строки на этот не пробел, пробел и эту последовательность не пробелов и повторяет до тех пор, пока не сможет заменить. Так для каждой строки, он делает (здесь для первой строки):

ID01 120120101
-> ID01 1 20120101
-> ID01 1 2 0120101
-> ID01 1 2 0 120101
-> ID01 1 2 0 1 20101
-> ID01 1 2 0 1 2 0101
-> ID01 1 2 0 1 2 0 101
-> ID01 1 2 0 1 2 0 1 01
-> ID01 1 2 0 1 2 0 1 0 1
at this point the "s" command fails, so "t1" doesn't branch

С perl:

perl -pe 's/\S+$/join " ", split "", $&/e'
22
15.11.2015, 02:36
0 ответов

Теги

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