Каково использование шаблона перед командой замены в sed

Можно проверить, с которым программа использует данные nethogs (http://nethogs.sourceforge.net/).

3
18.04.2012, 09:11
2 ответа

Общий формат sed команды

[address[,address]] function

Когда команда имеет единственный адрес, она управляет на всех строках тем соответствием тот адрес. Когда команда не имеет никакого адреса, она воздействует на каждую строку.

Ссылка: POSIX sed


Относительно Ваших определенных примеров:

  • /^#/ s/[0-9][0-9]*//

    • Эта команда имеет адрес, /^#/, который соответствует всем строкам, начинающимся a #.

    • Шаблон замены /[0-9][0-9]*/. Это соответствует первой последовательности цифр везде, где она происходит в строке.

    • Простая английская сводка: удалите первую последовательность цифр в каждой строке, начинающейся a #.

    • Пример: # non-digits|5555|non-digits|5555 становится # non-digits||non-digits|5555

  • s/^#[0-9][0-9]*//

    • Нет никакого адреса, таким образом, эта команда воздействует на каждую строку.

    • Шаблон замены, /^#[0-9][0-9]*/, соответствует последовательности последовательных цифр, которым предшествует a # привязанный в начале строки.

    • Простая английская сводка: удалить # сопровождаемый последовательностью цифр (и только что шаблон) с начала каждой строки.

    • Пример: #5555|non-digits|5555 становится |non-digits|5555, но # non-digits|5555|non-digits|5555 неизменно, потому что шаблон замены не соответствует.

6
27.01.2020, 21:11

Первое будет соответствовать и занимать место:

#abc99

Второе не будет.

Плюс, второе также удалит начальную букву #.

2
27.01.2020, 21:11

Теги

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