Текст замены с sed и сохраняет часть оригинального текста

Я полагаю, что "современные инструменты" способ получить Ваш адрес ipv4 должны проанализировать 'IP', а не 'ifconfig', таким образом, это было бы что-то как:

ip4=$(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1)
ip6=$(/sbin/ip -o -6 addr list eth0 | awk '{print $4}' | cut -d/ -f1)

или что-то как этот.

20
14.09.2011, 21:46
1 ответ

Можно использовать группы, например:

$ sed -i 's/<\(.*\)>\(.*\)<.*>/<column name="\1">\2<\/column>/g' filename.xml

Вероятно, самая запутывающая часть о REs - то, что существуют различные синтаксические разновидности.

Например, sed и энергия используют основные регулярные выражения, где необходимо заключить в кавычки () получить их метазначение.

С расширенными регулярными выражениями (например, awk, egrep и меньше) необходимо заключить в кавычки () получить буквальное значение. Существуют подобные различия для других метасимволов.

Объяснение позади BRE () семантика - то, что, когда большей частью Вашего входа является C-код затем, это более практично для заключения в кавычки круглых скобок для метаиспользования.

21
27.01.2020, 19:44
  • 1
    Это было на самом деле первой вещью, которую я попробовал, но я не вышел ( и ) персонажи. Глупый вопрос, но почему это необходимо? –  Mike 14.09.2011, 22:12
  • 2
    @Mike, хороший вопрос - обновил ответ. –  maxschlepzig 14.09.2011, 22:30

Теги

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