Extract string from brackets

后端 未结 9 1669
广开言路
广开言路 2020-12-23 16:26

I\'m pretty new at bash so this is a pretty noob question..

Suppose I have a string:

string1 [string2] string3 string4

I would like

相关标签:
9条回答
  • 2020-12-23 16:50

    Another awk:

    $ echo "string1 [string2] string3 [string4]" |
    awk -v RS=[ -v FS=] 'NR>1{print $1}' 
    string2
    string4
    
    0 讨论(0)
  • 2020-12-23 16:56

    In pure bash:

    STR="string1 [string2] string3 string4"
    STR=${STR#*[}
    STR=${STR%]*}
    echo $STR
    
    0 讨论(0)
  • 2020-12-23 16:56

    Inline solution could be:

    a="first \"Foo1\" and second \"Foo2\""
    echo ${a#*\"} | { read b; echo ${b%%\"*}; }
    

    You can test in single line:

    a="first \"Foo1\" and second \"Foo2\""; echo ${a#*\"} | { read b; echo ${b%%\"*}; }
    

    Output: Foo1

    Example with brackets:

    a="first [Foo1] and second [Foo2]"
    echo ${a#*[} | { read b; echo ${b%%]*}; }
    

    That in one line:

    a="first [Foo1] and second [Foo2]"; echo ${a#*[} | { read b; echo ${b%%]*}; }
    

    Output: Foo1

    0 讨论(0)
提交回复
热议问题