在linux的shell语言中,怎样用正则表达式来截取字符串?

比如说,有一串字符串“a=1 b=2 c=3”或者"a=abc b=bcd c=cde"
注意:,里面的空格个数不定
我想从中取得a、b、c的值。
要求:
要用正则表达式,取出"a="和" "之间的值、取出"b="和" "之间的值、取出"c="和" "之间的值。
例如上例中的字符串取出来是:1 2 3或abc bcd cde

第1个回答  推荐于2016-11-27
str=""
user=`echo $str | awk 'BEGIN'`
id=`echo $str | awk 'BEGIN'`
addr=`echo $str | awk -F? ''`
本回答被提问者和网友采纳
第2个回答  2011-07-05
echo "a=1 b=2 c=3"|sed -e 's/ /=/g'|awk -F= '{print $2 $4 $6}'

下面这个更准确
echo "a=1 b=2 c=3"|sed 's/[[:space:]]\+/=/g'|awk -F= '{print $2 $4 $6}'
第3个回答  2011-07-13
echo "a=abc b=bcd c=cde" | sed 's/=/ /g' | awk '{print $2,$4,$6}'

参考资料:http://luckyy.net/linux/shell%E7%AC%94%E8%AE%B0awk.html

第4个回答  2011-07-05
perl -le 'print $_ for split /\w=/, "a=1 b=2 c=3"'
相似回答