【问题标题】:How to check if the first character of a string is number in bash?如何检查字符串的第一个字符是否是bash中的数字?
【发布时间】:2023-03-24 10:10:01
【问题描述】:

我正在用 bash 编写一个 xml 元素。我需要将一些以数字开头的字符串替换为以字符开头的字符串,因此它是一个有效的 XML 标记(记住 xml 标记不能以字母数字字符开头)。

例如,

  str = 192.16.76.52,1001

这不是一个有效的 xml 标签,即我不能这样做

<192.16.76.52,1001>
.....
</192.16.76.52,1001>

所以,我打算检测它是否是一个数字并将其替换为类似

IP192.16.76.52

我知道我可以用 IFS 做到这一点,但可能需要很长时间和额外的代码。

既然您知道主要问题,请随时发表评论或提供建议。

谢谢

【问题讨论】:

  • 使用 '.' 可能不是一个好主意。在元素名称中。
  • 哦,我明白了....我不认为我会解析 xml 文件....但你认为它会影响 XML 文件格式吗?
  • 是的,我去掉了,这里的逗号也需要去掉....
  • 我做了但是 str=$(echo $str | cut -d /, -f 1)

标签: xml regex bash shell


【解决方案1】:

[[= 的 RHS 采用 glob 模式。

$ [[ 123 = [0-9]* ]] ; echo $?
0
$ [[ foo = [0-9]* ]] ; echo $?
1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2011-04-03
    • 1970-01-01
    相关资源
    最近更新 更多