Grep在Linux中的字符串的特殊部分

时间:2014-04-07 08:18:01

标签: linux bash grep

我想要grep一部分字符串,其中包含数字和点(。)。

例如:

/home/xar/11.1.0/hez
/uaa/14.0.2.5/grd/pc

我想要的只是这一部分:

14.0.2.5
11.1.0

我意识到cut命令不足以解决这个问题。

3 个答案:

答案 0 :(得分:5)

你可以使用这个grep:

$ grep -o "[0-9.]*" file
11.1.0
14.0.2.5
  • -o用于"仅打印匹配的部分"。
  • "[0-9.]*"匹配数字和点的任意组合。

答案 1 :(得分:2)

sed版本:

sed -n 's!.*/\([0-9.]*\)/.*!\1!p' input

答案 2 :(得分:0)

您可以使用awk,但此处grep是正确的工具。

awk -F/ '{for (i=1;i<=NF;i++) if ($i~/[0-9.]+/) print $i}' file
11.1.0
14.0.2.5