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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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

参考技术A str=""
user=`echo $str | awk 'BEGIN'`
id=`echo $str | awk 'BEGIN'`
addr=`echo $str | awk -F? ''`
本回答被提问者和网友采纳
参考技术B 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'
参考技术C 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

参考技术D perl -le 'print $_ for split /\w=/, "a=1 b=2 c=3"'

以上是关于在linux的shell语言中,怎样用正则表达式来截取字符串?的主要内容,如果未能解决你的问题,请参考以下文章

shell基础 -- 基本正则表达式

shell中的正则表达式

Linux shell 怎样判断输入是不是是数字啊?(包含浮点数)

linux基础:shell中的正则表达式用法大全

Linux Shell正则表达式如何匹配1~3位数字

Linux Shell编程 - 正则表达式