【问题标题】:Regular expression for "Some text repeating: XXhYYmZZs"“某些文本重复:XXhYYmZZs”的正则表达式
【发布时间】:2012-07-03 23:09:14
【问题描述】:

我想构建一个正则表达式,对于我给它的每一行文本输入,选择 XX、YY 和 ZZ 是什么,最好将值返回给我可以添加或放入的变量中一个数组或其他任何东西。

问题是我对正则表达式和 shell 脚本都很陌生(我将使用 csh 来完成这项任务)。所以我想知道如何使用 csh 正则表达式来做到这一点,以及它是否与 perl 正则表达式不同。

只是重申一下模式如下:

Some text repeating: 23h04m31s
...
Some text repeating: 12h13m22s
...

编辑 - 我的脚本需要为此查看特定文件。我想我可以在我的 csh 脚本中使用 GREP 工具,并使用正确的正则表达式。

感谢您的帮助!

【问题讨论】:

  • 如果您确实是 shell 脚本新手,您真的应该重新考虑使用 cshcsh适合编写脚本,你可以帮自己一个忙避免它。

标签: regex shell scripting


【解决方案1】:
while read line
do
    time=${line##*: }
    hours=${time%h*}
    minutes=${time#*h}
    minutes=${minutes%m*}
    seconds=${time#*m}
    seconds=${seconds%s*}

    do_something_with "$hours" "$minutes" "$seconds"
done < yourinputfile

【讨论】:

  • 刚看到你要csh,但上面是sh
  • 你知道细微的差别吗?
  • 不,抱歉,我只使用sh——无论如何,它是您需要知道的,并且是迄今为止使用最广泛的,正如某些人所说,这是有原因的。但我敢肯定,这些差异并不是很小的。
猜你喜欢
  • 2011-11-21
  • 2016-01-15
  • 1970-01-01
  • 2011-02-15
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 2020-08-25
  • 2020-10-26
相关资源
最近更新 更多