Выделите термин в строке

Я хотел бы выделить термин в определенной строке, определенной следующим образом:

enO.u16LINK=0x01

Мне удалось изолировать 0x01 с помощью value=${lines##*=}. В то же время мне удалось получить enO.u16LINK с помощью ${lines%=*}. Однако я не могу найти способ изолировать enO и u16LINK в двух разных переменных.

Кто-нибудь знает регулярное выражение для удовлетворения этой потребности?

См. также:  Как вернуть файл YAML в качестве выходного артефакта из Lambda в CodePipeline
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 3
  1. ogs

    Сделайте то же самое, что и раньше.

    $ lines=enO.u16LINK=0x01
    $ value=${lines##*=}
    $ key=${lines%=*}
    $ key1=${key%.*}
    $ key2=${key#*.}
    $ echo value=$value
    value=0x01
    $ echo key=$key
    key=enO.u16LINK
    $ echo key1=$key1
    key1=enO
    $ echo key2=$key2
    key2=u16LINK
    

    Спасибо, Этан! Ваше решение именно то, что я искал. person ogs; 27.11.2014

  2. ogs

    Используя подоболочку:

    $ read a b c <<< $(IFS=".="; set -- $line; IFS=" "; echo "$*")
    $ echo $a
    enO
    $ echo $b
    u16LINK
    $ echo $c
    0x01
    
  3. ogs

    Используйте вырезать …

    $ var1=`echo enO.u16LINK=0x01 | cut -d\= -f1 | cut -d\. -f1`
    $ echo $var1
    enO
    $ var2=`echo enO.u16LINK=0x01 | cut -d\= -f1 | cut -d\. -f2`
    $ echo $var2
    u16LINK
    

    Спасибо Рэду. Последний вопрос. В вашем решении -f1 связано с первым термином, до -d \ = и -d \., А -f2 со вторым, не так ли? person ogs; 27.11.2014

    прочтите справочную страницу. man cut :) person ogs; 27.11.2014

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: