sed+;如何获取“后的第二个单词(字符串)”=&引用;sed分离器

sed+;如何获取“后的第二个单词(字符串)”=&引用;sed分离器,sed,Sed,如何通过sed获取“=”分隔符后的第二个单词(字符串)(需要忽略空格) 比如说 echo " bla bla word word1 = strin1 string2 " | sed ..... 我应该得到第二条 另一个例子 echo " bla bla word word1 =swhsw 123 " | sed ..... 我应该得到123我相信对于这种情况,awk是一个更好的解决方案,只需使用 echo "bla bla word word1 = strin1 string

如何通过sed获取“=”分隔符后的第二个单词(字符串)(需要忽略空格)

比如说

   echo " bla bla word word1 = strin1 string2 " | sed .....
我应该得到第二条

另一个例子

    echo " bla bla word word1 =swhsw 123  " | sed .....

我应该得到123

我相信对于这种情况,
awk
是一个更好的解决方案,只需使用

echo "bla bla word word1 = strin1 string2" | awk -F"=" '{print $2}' | awk '{print $2}'

你开始阅读如何使用它怎么样

这个答案纯粹是GNU的:

export text=" bla bla word word1 = string1 string2 string3 ";
echo "$text" | sed 's/.*= \?[a-zA-Z0-9]* \([a-zA-Z0-9]*\).*/\1/';
我稍微更改了字符串,因为可能会有更多的单词,如果该单词不是最后一个,则规则将更改

让我们解释一下:

  • *=
    :等号前的所有字符
  • *=/?
    :这是主要部分,相等后我留一个空白 空格,我放了/?,这意味着一次或零次视力,不知道 如果你能在这里留个地方
  • [a-zA-Z0-9]*
    a-z a-z 0-9的所有发音,单词(string1)
  • \([a-zA-Z0-9]*\)
    再次获取a-zA-Z0-9的所有相关信息,第二个单词
  • \).
    所有其他东西
  • /\1/
    将输出\(\)之间的所有内容

  • 我希望这对某人有所帮助。

    在我执行echo“bla bla word1=strin1 string2”之后,awk-F“{print$2}”我得到strin1 string2(为什么它不是只打印string2?)嗨,anders:我只需要分隔符后的第二个单词,而不是分隔符后的所有单词,你能据此更改你的awk吗lidia@lidia固定的。在本例中,它打印string2.OP,以获得SED特定的解决方案。
    export text=" bla bla word word1 = string1 string2 string3 ";
    echo "$text" | sed 's/.*= \?[a-zA-Z0-9]* \([a-zA-Z0-9]*\).*/\1/';