sed 's/foo/bar/g' number.txt
:Это читает файл number.txt
и заменяет шаблон регулярного выражения foo
на bar
. Это будет происходить для всех совпадений в каждой строке(/g
). \(^\|[^0-9.]\)\([0-9]\+\)\([0-9]\{3\}\)
:Это шаблон для замены. Каждая часть в экранированных скобках \(…\)
является «группой захвата». Выкройка внутри «захвачена» для последующего использования. \(^\|[^0-9.]\)
:Найдите в начале строки ^
или \|
символ, не являющийся цифрой или точкой [^0-9.]
. По сути, это находит символ, предшествующий числу. \([0-9]\+\)
:Найдите одну или несколько цифр [0-9]\+
. \([0-9]\{3\}\)
:Найдите 3 цифры [0-9]\{3\}
. \1\2,\3
:замените приведенные выше совпадения первыми двумя группами захвата, за которыми следует ,
, затем последняя группа захвата. Другими словами, вставьте ,
между вторым и третьим шаблонами. Поскольку sed
является "жадным", он попытается максимально увеличить длину совпадения. Следовательно, последней группой захвата будут последние три цифры в номере.
Н.Б. многие из «специальных» символов экранируются с помощью \
, например. \(…\)
и \{3\}
. Если бы ваш sed
поддерживал "расширенные регулярные выражения" с -E
или -r
, вам не нужно было бы избегать их. Это улучшит читаемость.
попробуй:
sysctl -p
или для отключения пуленепробиваемого ipv6 -добавьте в grub.conf строку ipv6.disable=1:
# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
создать новую конфигурацию grub:
# grub2-mkconfig -o /boot/grub2/grub.cfg
и перезагрузить:
# reboot