Я хочу заменить текст из входного файла. Входной файл содержит следующий текст ввода:Ubuntu SED: Замена регулярными выражениями
...
[
%% Riak Client APIs config
{riak_api, [
%% pb_backlog is the maximum length to which the queue of pending
%% connections may grow. If set, it must be an integer >= 0.
%% By default the value is 5. If you anticipate a huge number of
%% connections being initialised *simultaneously*, set this number
%% higher.
%% {pb_backlog, 64},
%% pb is a list of IP addresses and TCP ports that the Riak
%% Protocol Buffers interface will bind.
{pb, [ {"192.168.75.999", 8087 } ]}
]},
%% Riak Core config
...
Я попытался ввести следующую SED регулярного выражения:
sed -i -e "s/\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\", 8087/$my_ip\", 8087" /path/to/file
В результате я хочу иметь старый IP-адрес 192.168.58.999 заменен с сервером фактический IP-адрес. Переменная my_ip подается с IP-значением сервера с предыдущего шага. SED выполняет выражение регулярного выражения и возвращается без ошибок, но также без каких-либо изменений в файле.
Я хотел бы получить любую помощь по этой проблеме. (Я использую Ubuntu 12.04.2, 64 бит)
Возможно, было бы легче, если бы мы могли видеть входные данные. Всего несколько строк, если оно длинное. –
Ну, вам не хватает обратной косой черты перед первым «d» ... это поможет? – FrankieTheKneeMan
Если вы хотите «заменить текст из входного файла», тогда покажите нам «текст из входного файла», чтобы мы могли вам помочь. –