【问题标题】:Get the first integer from a txt file using bash使用 bash 从 txt 文件中获取第一个整数
【发布时间】:2015-01-03 13:08:37
【问题描述】:

我如何(在 ubuntu 下)从一碗汤中获取第一个整数

【问题讨论】:

  • 哈希值总是在数字后面吗?
  • 而且字符串总是以你要保存的整数开头吗?

标签: regex linux bash integer extract


【解决方案1】:

使用纯 BASH:

line='321#somewords-and-numbers32452352'
[[ "$line" =~ ^[^0-9]*([0-9]+) ]] && echo "${BASH_REMATCH[1]}"
321

或者使用sed:

sed 's/^[^0-9]*\([0-9]\+\).*$/\1/' <<< "$line"
321

【讨论】:

  • 我处理了你的正则表达式并得到了“s/^ÿ^0-9¦*½(ÿ0-9¦½+½).*$/½1/”。这是什么???
【解决方案2】:
echo 'abc321#somewords-and-numbers32452352' | grep -oP '^[^0-9]*\K[0-9]+'

输出:

321

【讨论】:

  • 谢谢伙计!太完美了!
【解决方案3】:

使用 sed 和字符串匹配返回字符串中的第一个数字。

echo $line | sed -e 's/^[^0-9]*\([0-9][0-9]*\).*/\1/'

正则表达式[^0-9]* 的第一部分是删除任何存在的非数字前导字符。

【讨论】:

    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2021-02-06
    • 1970-01-01
    • 2020-09-25
    相关资源
    最近更新 更多