net.inet.ip.fastforwarding
FreeBSD sysctl
опция, которая включит путь оптимизации в сетевом стеке.
Это было представлено ядру FreeBSD в 2003. Быстрый тракт передачи опускает некоторые проверки на пакеты, переданные к исходящему интерфейсу. Неодноадресные пакеты, пакеты с опциями IP или пакеты, предназначенные к локальным IP-адресам, отступают к нормальному пути обработки.
sed 's/=\(+[0-9]\{1,3\}\)/(\1)=\1/'
Для решения вашей проблемы (как я понял):
Шаблоны, которые необходимо запомнить в sed
, должны быть заключены в круглые скобки - их внешний вид определяет их порядковый номер.
Например:
sed 's/\(<memorized_pattern_1>\)<not_memorized>\(<memorized_pattern_2>\)/\2\1/'
поменяет местами шаблоны 1 и 2 и удалит средний.
Используйте это:
sed 's/=\(+[0-9]\+\)/(\1)=\1/' file
Он ищет = +
, за которым следует хотя бы одна цифра ( [0-9] \ +
) и заменяет все на желаемый формат ( (\ 1) = \ 1
).
sed 's/=\([^= ]*\) *$/(\1)&/' <in >out
Приведенное выше просто заменит последний знак равенства в строке и все символы, следующие за первым, на ...
Копию следующих, которые являются не пробелом, окруженными двумя скобками (в случае, если в строке есть завершающие пробелы)
Весь совпадающий шаблон заново.
В правой части (поле замены в s ///
ubstitution) \ 1
представляет первый \ (
групповой захват \)
и &
представляет весь согласованный шаблон как группу. Итак ...
sed 's/=\([^= ]*\) *$/(\1)&/' <<\IN
Afghanistan=+93
Albania=+355
Algeria=+213
American Samoa=+1
Andorra=+376
Angola=+244
IN
Afghanistan(+93)=+93
Albania(+355)=+355
Algeria(+213)=+213
American Samoa(+1)=+1
Andorra(+376)=+376
Angola(+244)=+244
Предположим, что все данные находятся в файле с именем file, тогда
awk -F "=" '{print $1"("$2")="$2}' file