【发布时间】:2013-12-17 20:34:14
【问题描述】:
我有一个关于 sed 的问题。从这个输入:
[/=TueGreen$58.30Orange5:36pmSat*=WedOrange$76.63Purple6:20pmTue]
[/=Thu6:06pm$09.05Blue11:32amMon/=Thu1:38am$56.41Red4:25amThu]
[/=Sun1:49pm$12.41Yellow2:51pmMon*=FriOrange$49.68Blue1:24pmTue]
[/=Sat11:58am$82.24Orange3:44amMon*=Thu1:08am$33.49Red8:21amSat]
我必须做一个输出:
$58.30
6:06pm$09.05
1:49pm$12.41
11:58am$82.24
我知道,模式看起来很简单,但是,我什至没能找到时间模式。因为小时有时是 1 或 2 位数字。
这是我学习 sed 并寻找答案的第三天。我学过grep。如果使用 grep,那么简单。但是这个任务迫使我使用 sed。到目前为止,这是我的 sed 命令:
sed 's/.*\([0-9]*:[0-9]*\(am\|pm\)\).*/\1/' FILE
结果仅显示分钟和上午/下午。输入的每一行都有很多时间模式。但我的结果显示了每行中的最后一次模式。如下所示:
:20pm
:25am
:24pm
:21am
我哪里做错了?
【问题讨论】:
-
+1 表示非常好的第一个问题,包括样本数据、预期输出、当前输出和 ....gasp,O.P. 尝试解决自己的问题。嗯,你的标题似乎与你的描述不符,但到底是什么,它是假期。祝你好运,继续发帖!
标签: sed