需要關於bash腳本的一部分的幫助,它需要找到特定的模式字符串。樣本字符串如下:搜索字符串的組合和模式
//*-----------
//* %%SET %%ABC = %%BLANK
//* %%SET %%RESTART = %%BLANK7
//* %%SET %%DANGO= 236985
//*-----------
//* %%IF %%ODATE EQ 123456
//* %%SET %%ABC= GSG34
//* %%SET %%RESTART = RESTART
//* %%ENDIF
//*-----------
//* %%IF %%ODATE EQ 463123
//* %%SET %%DANGO= 236985
//* %%ENDIF
//*-----------
//* %%IF %%ODATE EQ 15641
//* %%SET %%RESTART = %%BLANK7
//* %%ENDIF
//*-----------
- 我需要找到大館,ABC,一個IF內重新啓動,並ENDIF條件
- 我specificly需要檢查beween IF和ENDIF的組合。還應該檢查IF和ENDIF之間存在三個參數ODATE,ABC和RESTART的情況。如果條件滿足,則應打印這些條件。
- 我想下面的命令
貓文件| SED -n '/ %% IF /,/ %% ENDIF/P'
//* %%IF %%ODATE EQ 123456
//* %%SET %%ABC= GSG34
//* %%SET %%RESTART = RESTART
//* %%ENDIF
//* %%IF %%ODATE EQ 463123
//* %%SET %%DANGO = 236985
//* %%ENDIF
//* %%IF %%ODATE EQ 15641
//* %%SET %%RESTART = %%BLANK7
//* %%ENDIF
我只需要下面發現:
//* %%IF %%ODATE EQ 123456
//* %%SET %%ABC= GSG34
//* %%SET %%RESTART = RESTART
//* %%ENDIF
我怎麼能做到這一點?
謝謝你的快速答覆。但是從ODATE號碼中過濾出來,我們可以在IF和ENDIF之間進行具體檢查。還應該檢查IF和ENDIF之間存在三個參數ODATE,ABC和RESTART的情況。 –
您可以使用以下命令'awk'/ IF/&&/ABC/&&/RESTART /'RS ='// \\ * --- + \ n'' – hek2mgl
謝謝。這是魔術。 –