sed+;如何获取“后的第二个单词(字符串)”=&引用;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
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/';