Я пытаюсь найти и заменить строку в файле на терминале Mac с помощью sed. Я могу найти и заменить простую строку:Поиск и замена Sed в переменной string
sed -i.bak 's/HOSTS/BOASTS/g' file.txt
Но я пытаюсь его на что-то более сложным, в основном строка, я хочу, чтобы заменить выглядит что-то вроде «HOSTS:" 123.123.123.123, 12345 «'- с 123.123.123.123
, являющимся переменным IP, поэтому я не могу точно его искать, поэтому я пытаюсь использовать регулярные выражения, в основном«. ». чтобы указать, что я не знаю, каким будет IP-адрес.
Я попытался следующие без везения:
sed -i.bak 's/HOSTS:"., 00000"/HOSTS:"999.999.999.999, 00000"/g' file.txt
Я предлагаю более разрешающее регулярное выражение: '[0-9] \ + \. [0-9] \ + \. [0-9] \ + \. [0-9] \ + /' где ' \ + 'сигналы 1 или более предыдущего символа. Это будет работать для IP-адресов, таких как 4.2.2.2 (действительный IP-адрес). – sage