%20%D0%B8%D0%B7%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%20%D0%B4%D0%B0%D0%BC%D0%BF%D0%B0%3F.png)
Пример:
$cat data.txt
SCN THREAD OPERATION ID OBJECT ID OBJECT NAME REPLICATE OPERATION SQL
------------- ------- -------------------------------------------------- ----------- ------------------------------- ---------- --------------- -------------------------------------------------
959936598838 1 0x00df.80ae1336.0000:0001.001087a6.00074e62.0010 0 N/A NO START set transaction read write;
959936598838 1 0x00df.80ae1336.0000:0001.001087a6.00074e62.0010 8144610 HEARTBEAT YES INSERT insert into "SRS"."HEARTBEAT"("INST_NAME","CR_DATE") values ('LIVE LIVE-22.',TO_DATE('03/15/2019 23:00:05', 'MM/DD/YYYY HH24:MI:SS'));
959936598839 1 0x00df.80ae1337.0000:0001.001087a6.00074e63.0174 0 N/A NO COMMIT commit;
Можно ли извлечь из приведенного выше файла запрос на вставку, включая значения, с помощью скрипта оболочки?
Мне нужен желаемый результат, как показано ниже.
вставить в "SRS"."HEARTBEAT"("INST_NAME","CR_DATE") значения ('LIVE LIVE-22.',TO_DATE('03/15/2019 23:00:05', 'MM/DD/YYYY HH24:MI:SS'));
решение1
При условии отсутствия свободного места в первых семи столбцах.
$ while read a b c d e f g query; do echo "${query}"; done < data.txt | grep -Ei "insert|update"
insert into "SRS"."HEARTBEAT"("INST_NAME","CR_DATE") values ('LIVE LIVE-22.',TO_DATE('03/15/2019 23:00:05', 'MM/DD/YYYY HH24:MI:SS'));
$ awk '/insert|update/{for(i=1;i<=7;i++){$i=""}print}' data.txt
insert into "SRS"."HEARTBEAT"("INST_NAME","CR_DATE") values ('LIVE LIVE-22.',TO_DATE('03/15/2019 23:00:05', 'MM/DD/YYYY HH24:MI:SS'));