awk - 使用 Shell 脚本从文件中读取 SQL 语句块的更好方法是什么?
问题描述
我有一个像下面这样的文件,里面有很多 SQL 语句。我想在需要时读取特定的 SQL 块。
我的文件.SQL
#QUERY1
SET ECHO OFF NEWP 0 SPA 0 PAGES 0 FEED OFF HEAD OFF TRIMS ON TAB OFF
SET VERIFY OFF
SET NUMFORMAT 99999999999999999
Select max(time_created) from test.table1 where cust=1;
EXIT;
#QUERY2
SET ECHO OFF NEWP 0 SPA 0 PAGES 0 FEED OFF HEAD OFF TRIMS ON TAB OFF
SET VERIFY OFF
SET NUMFORMAT 99999999999999999
Select count(*) from test.table1 where cust=1;
EXIT;
#QUERY3
SET ECHO OFF NEWP 0 SPA 0 PAGES 0 FEED OFF HEAD OFF TRIMS ON TAB OFF
SET VERIFY OFF
SET NUMFORMAT 99999999999999999
Select count(*) from test.table12 where acct=1;
EXIT;
我正在使用以下命令
x=$(cat test.sql )
echo $x | awk -F'COUNT_QUERY' '{ print $0 }'
有人可以帮助解决这个问题吗?
解决方案
您能否尝试在 GNU 中使用显示的示例进行跟踪、编写和测试awk
。
awk '/^#QUERY2$/{found=1} found; /^EXIT/ && found{exit}' Input_file
说明:为上述添加详细说明。
awk ' ##Starting awk program from here.
/^#QUERY2/{ ##Checking condition if line starts with #QUERY2 then do following.
found=1 ##Setting found value as 1 here.
}
found; ##Checking condition if found is SET then print that line.
/^EXIT/ && found{ ##Checking condition if line starts with EXIT and found is SET then do following.
exit ##exit from program from here.
}
' Input_file ##Mentioning Input_file name here.
推荐阅读
- javascript - TronWeb 发送交易
- sql - 寻找一些 SQL 帮助我有一个我想从中提取的列并且无法为其创建选择任何建议都会有所帮助
- project-reactor - 项目反应堆:将两个单声道相加
无阻塞 - python - 如何确保 GEKKO 中的 Step Function Control 以及对 MV_TYPE 的混淆
- r - 在 R 中将 ASCII 规范化为 UTF-8
- sql - Postgres:每个事件的会话持续时间(行)
- python - 整数序列的高效块引导
- google-chrome - 使用 PDF 文件输入的 Chrome Headless print-to-pdf
- python - 如何在matlab中使用python进行模型预测
- sql - 根据每条记录的最近日期连接表