【问题标题】:How to cut the string from bash shell [duplicate]如何从bash shell中剪切字符串[重复]
【发布时间】:2016-10-04 16:55:46
【问题描述】:

从 linux Bash 你能帮我看看如何只显示

Monitoringmetric=1.5Count

而不是

Monitoringmetric=1.5Count;1;2

【问题讨论】:

  • echo "Monitoringmetric=1.5Count;1;2" | cut -f1 -d";"
  • 您可以为此使用 bash:s='Monitoringmetric=1.5Count;1;2'; echo "${s%%;*}"
  • 谢谢 Jean 和 anubhva,这两个建议都像魅力一样,我可以再问一个关于我如何只能剪切和显示的问题 = 1.5
  • 请不要将评论部分变成问答环节。如果您有答案,请将其发布为答案。 @AppsTester 如果您有后续问题,请发布新问题。
  • 最终显示它,但似乎是一个长命令,请告知是否有办法可以缩短此 $ echo "Monitoringmetric=1.5Count;1;2" | cut -f2 |sed -e 's/Monitoringmetric=//g' |剪切 -f1 -d ";" | sed -e 's/Count//g'

标签: bash


【解决方案1】:

由于您似乎只对捕获 Monitoringmetric= 之后的数字感兴趣,因此您可以这样做:

echo "Monitoringmetric=1.5Count;1;2" | sed -n -e 's/^Monitoringmetric=\([0-9.]*\).*/\1/p'

【讨论】:

    【解决方案2】:

    最后显示它,但似乎是一个很长的命令,请告知是否有办法可以缩短它

    $ echo "Monitoringmetric=1.5Count;1;2" | cut -f2 |sed -e 's/Monitoringmetric=//g' |剪切 -f1 -d ";" | sed -e 's/Count//g'

    【讨论】:

    • 你为什么要执行似乎什么都没有完成的cut -f2?你想从输入中提取什么?只有 1.5 ?
    【解决方案3】:

    如果你的字符串在变量中,你也可以使用${a%%;*},例如:

    a="Monitoringmetric=1.5Count;1;2"
    echo ${a%%;*}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 2014-03-26
      • 2011-04-14
      相关资源
      最近更新 更多