使用SED或AWK进行模式提取

时间:2012-12-08 00:28:48

标签: sed awk grep

如何从68中提取v1+r0.68

5 个答案:

答案 0 :(得分:4)

使用awk,返回最后一个'。'

之后的所有内容
echo "v1+r0.68" | awk -F. '{print $NF}'

答案 1 :(得分:1)

使用sed获取最后一个点后面的数字:

echo 'v1+r0.68' | sed 's/.*[.]\([0-9][0-9]*\)$/\1/'

答案 2 :(得分:1)

grep擅长提取东西:

kent$  echo " v1+r0.68"|grep -oE "[0-9]+$" 
68

答案 3 :(得分:1)

使用grep匹配行尾的数字字符串:

$ echo 'v1+r0.68' | grep -Eo '[0-9]+$'
68

或匹配.

后的任何数字
$ echo 'v1+r0.68' | grep -Po '(?<=\.)\d+'
68

使用.

打印awk之后的所有内容
echo "v1+r0.68" | awk -F. '{print $NF}'
68

使用.替换sed之前的所有内容:

echo "v1+r0.68" | sed 's/.*\.//'
68

答案 4 :(得分:0)

输入man grep

你会看到

...

   -o, --only-matching

          Show only the part of a matching line that matches PATTERN.

然后输入echo 'v1+r0.68' | grep -o '68'

如果你想要任何特殊的地方:

echo 'v1+r0.68' | grep -o '68' > anyWhereSpecial.file_ending