【发布时间】:2015-08-16 02:40:03
【问题描述】:
我在一个文本文件中循环浏览电台名称。对于文本文件中的每个站块,我想匹配第一次出现的“添加”并使用来自该站块的适当传感器和时间信息附加一个关闭语句。如果该站存在第二个传感器,我还想在第二次出现“添加”之后附加一个关闭语句,使用它的适当传感器和相同的时间信息。如果第二个传感器不存在,它可以移动到下一个站点。我想在文本文件中的每个站块中都遵循这种模式。我用 awk 和 sed 尝试了一些东西,但我只能在每次出现“add”之后添加 close 语句。谁能指导我采用更合适的技术?这是文本文件中的两个示例站块:
sta charlie 34.07335 -106.91932 1.43 topico
time 01/14/2015 23:05:38
net XI SPREE
datalogger q330 0100000EA9C2B9C3 # 2842
sensor cmg3t 0 T3S82
add
sensor trillium 0 T3N04
add
#######Next station block###############
sta charlie2 34.07335 -106.91932 1.43 topico2
time 01/14/2015 23:05:38
net XI SPREE
datalogger q330 0100000EA9C2B9C3 # 2842
sensor trillium 0 T3S84
add
sensor sts2 0 T3N04
add
我希望代码输出以下内容:
sta charlie 34.07335 -106.91932 1.43 topico
time 01/14/2015 23:05:38
net XI SPREE
datalogger q330 0100000EA9C2B9C3 # 2842
sensor cmg3t 0 T3S82
add
close sensor cmg3t 01/14/2015 23:05:38
sensor trillium 0 T3N04
add
close sensor trillium 01/14/2015 23:05:38
#######Next station block###############
sta charlie2 34.07335 -106.91932 1.43 topico2
time 01/23/2015 17:04:22
net XI SPREE
datalogger q330 0100000EA9C2B9C3 # 2842
sensor trillium 0 T3S84
add
close sensor trillium 01/23/2015 17:04:22
sensor sts2 0 T3N04
add
close sensor sts2 01/23/2015 17:04:22
【问题讨论】:
-
我将它精简到只有必要的组件。我只是不希望有人使用行号编写解决方案,因为中间还有其他条目。感谢您考虑