Как извлечь с помощью sed числовые символы между двумя символами?

No , no es posible.

Como la entrada de dominio debe presentarse en tld servidores dns autorizados, que solo el registrador autorizado por ICANN puede insertar a través del protocolo EPP o de alguna otra manera que tld proporciona como API, llamada telefónica, correo electrónico, etc.

Explicación:Siempre que el cliente ingrese el dominio en su navegador, realizará una consulta DNS, la consulta llegará al servidor raíz y luego al servidor tld, pero debido a que el servidor tld no tiene ninguna entrada, el cliente no podrá obtener la dirección IP y por lo tanto, no podrá comunicarse con su servidor web.

Si está pensando por qué alguien tiene que pagar por el registro del dominio, hay una buena explicación en esta respuesta de intercambio de pila .

Términos:

Protocolo EPP :un protocolo diferente del DNS, para gestionar el registro y el aprovisionamiento de nombres

ICANN :una organización sin fines de lucro responsable de coordinar el mantenimiento y los procedimientos de varias bases de datos relacionadas con los espacios de nombres de Internet, asegurando la operación estable y segura de la red

1
27.06.2019, 02:05
4 ответа

Вы можете попробовать следующие 2 метода

Первый метод с использованием awk

awk '{print $2}' filename
0
27.01.2020, 23:15

Может быть, что-то вроде этого:

$ echo "text: 30 (5 new)" | sed -e 's/^.*: \([0-9][0-9]*\).*$/\1/'
30

Чтобы сломать это:

  • ^.*:соответствует, начиная с начала строки, любому количеству символов, заканчивающихся двоеточием и пробелом
  • \([0-9][0-9]*\)соответствует номеру. Круглые скобки определяют группу, к которой мы можем обратиться позже.
  • .*$соответствует любому количеству символов до конца строки

Мы заменяем весь этот шаблон(s)на \1, который является содержимым первой группы (т. е. группы, которую мы определили с помощью скобок --числа ).

2
27.01.2020, 23:15

Ваше выражение('s/.*: //g')удаляет первую часть, но сохраняет все остальное. Этот заменяет всю строку той частью, которая имеет только нужные номера:

sed -re 's/^.*: ([0-9]+).*$/\1/'

Детали:^.*:первая часть (подходит к началу строки ), ваш номер следующий ([0-9]+), он в скобках для определения группы, которую вы можете использовать позже, и, наконец, остаток строки до конца:.*$. А вы замените на первую группу (у нас только одна):\1

2
27.01.2020, 23:15
  1. Вы не совсем точно представляете, что может идти после числа. Если может быть другое двоеточие, например,

    eggs: 42 (from: 17 hens)
    

    тогда другие ответы дадут вам 17. Если это то, что вы хотите, хорошо (но, пожалуйста, отредактируйте свой вопрос, указав, что вы хотите ). Если вам нужен номер после первого двоеточия , используйте ^[^:]*вместо ^.*.

  2. Вы не совсем точно представляете, что такое «числовой результат». Если у вас может быть:

    balance: 609.83 (I’m running low on money)
    balance: -17.42 (overdraft!)
    
    • Прежде всего, пожалуйста, отредактируйте свой вопрос, указав, как выглядят ваши числа.
    • В заголовке вашего вопроса написано «между двумя символами». Если вы гарантируете, что числовой результат (каким бы он ни был )за которым следует пробел (и не содержит никакого пробела (s )! ), затем

      sed 's/^[^:]*: \([^ ]*\).*/\1/'
      

      может быть самым прямым решением. Это захватит все непустые символы -, которые следуют за . Обратите внимание, что это будет обрабатывать случаи, когда число находится в конце строки. (без пробела):

      Blind mice: 3
      

    (Обратите внимание, что ответ Энди Далтона также будет обрабатывать случаи, когда число находится в конце строки.)

1
27.01.2020, 23:15

Теги

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