我正在循環瀏覽文本文件中的站點名稱。對於文本文件中的每個站塊,我想匹配第一次出現的「添加」,並使用來自該站塊的相應傳感器和時間信息追加一條關閉語句。如果該站有第二個傳感器,我也想在使用適當傳感器和相同時間信息的第二次「添加」之後追加一個關閉語句。如果第二個傳感器不存在,它可以移動到下一個站。我希望在文本文件中的每個站塊中都遵循這種模式。我用awk和sed嘗試了一些東西,但我只能在每次出現「add」後添加close語句。任何人都可以引導我採用更合適的技術嗎?下面是該文本文件中的兩個實例站塊:awk模式匹配:循環遍歷,附加文本
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
我把它縮小到只有必要的組件。我只是不想讓別人用行號寫一個解決方案,因爲其間有其他條目。感謝您考慮 – user1332577