【问题标题】:How grep two digit numeric value from grep command如何从 grep 命令中 grep 两位数字值
【发布时间】:2017-10-18 14:25:02
【问题描述】:

我有像 /Modem/34 这样的字符串行,现在我只想提取 34 .. 如何做到这一点。

【问题讨论】:

  • 试试这个echo "/Modem/34" | grep -Eo '[0-9]+'

标签: regex shell


【解决方案1】:

试试

grep -Eo '[0-9][0-9]' infile

【讨论】:

    【解决方案2】:

    尝试:

    A="/Modem/34"
    echo ${A##*/}
    

    将字符串保存到名为 A 的变量中,然后使用 shell 的参数扩展仅获取 34(因为它将删除所有内容,直到 /)。 编辑:根据 OP 的请求将变量的值添加到变量中。

    A="/Modem/34"
    VAR=${A##*/}
    echo $VAR
    34
    

    【讨论】:

    • 在上面我想提取 34 并存储在 shell 中的变量中
    • @user8032404:现在编辑了我的答案,如果这对你有帮助,请告诉我。
    • 三四后有空格
    【解决方案3】:

    如果要提取最后一个斜线后的文本:

    grep -o '[^/]*$'
    

    awk -F'/' '{print $NF}'
    

    根据OP的评论更新:

    $ sed 's#.*/##;s/ .*//'<<< "a/b/c/this fo ba"
    this
    

    【讨论】:

    • 我在上面试过了,但我想要斜杠后面的数字,直到空格。就是这样
    • 这需要存储在一个变量中
    • 当空间进入时需要停止提取并需要存储在变量中
    • @user8032404 查看更新后的答案。如果你想要它在变量中,VAR=$(sed cmd)
    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多