如何删除除包含 TRUNCATE - INSERT 的行之外的所有行

2024-01-10

我创建了一个脚本,将所有 PL/SQL 文件格式化为一个具有值对的简单文件,它很难解释,我认为如果您只查看该文件会更容易;

PROCEDURE VALIDA_CAMBIO_GPR
TRUNCATE TMP_MOD_PVA
INSERT TMP_MOD_PVA
PROCEDURE AJUSTAR_FECHAS
INSERT PRO_TDA_VARLOG_ALM
PROCEDURE DEPURAR_CAMBIOS_GPR
PROCEDURE INC_EX_0001
INSERT CABECERA_ALARMAS
PROCEDURE INC_EX_0002
INSERT CABECERA_ALARMAS
PROCEDURE INC_EX_0003
INSERT CABECERA_ALARMAS
PROCEDURE INC_EX_0005
INSERT CABECERA_ALARMAS
PROCEDURE INC_EX_0007
INSERT CABECERA_ALARMAS
PROCEDURE INC_EX_0008
INSERT CABECERA_ALARMAS
PROCEDURE INC_EX_0009
INSERT CABECERA_ALARMAS
PROCEDURE INC_EX_0010
INSERT CABECERA_ALARMAS
PROCEDURE INC_EX_0011
INSERT CABECERA_ALARMAS

好吧,这个文件有 4000 行,但我不需要所有的行,我想要的只是同一个表的 TRUNCATE 和 INSERTS 对,所以例如在最后一个文件中我只想保留名称包含该对的过程以及该对。 FE

PROCEDURE VALIDA_CAMBIO_GPR
TRUNCATE TMP_MOD_PVA
INSERT TMP_MOD_PVA

正如您所看到的,TRUNCATE 和 INSERT 影响同一个表,每个过程也可能有多个对。我怎么能这样做呢? 我不想要所有没有这些对的过程,而且我也不想要任何没有这些对的插入的截断。 抱歉,解释不好,如果 oyu 有理解问题,请发表评论,我会尽力升级。

PD:我使用 ksh。


Using awk:

awk '$1=="PROCEDURE"{p=$0;next} p && $1=="TRUNCATE"{t=$2;next} t==$2 && $1=="INSERT"{
     print p; print "TRUNCATE" t; print "INSERT" t; print ""; t=""}' file
PROCEDURE VALIDA_CAMBIO_GPR
TRUNCATETMP_MOD_PVA
INSERTTMP_MOD_PVA
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除除包含 TRUNCATE - INSERT 的行之外的所有行 的相关文章

  • 在脚本内使用不带密码的 sudo

    由于某种原因 我需要作为用户在没有 sudo 的情况下运行脚本 script sh 该脚本需要 root 权限才能工作 我认为将 sudo 放入 script sh 中是唯一的解决方案 让我们举个例子 script sh bin sh su
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • bash循环跳过注释行

    我正在循环文件中的行 我只需要跳过以 开头的行 我怎么做 bin sh while read line do if line doesn t start with then echo line fi done lt tmp myfile 谢
  • Shell Crontab 不工作

    GNU nano 2 0 9 文件 tmp crontab XXXXzBQgwS 5 check phpfpm sh 5 check nginx sh 5 disk clean sh 5 loadcheck sh 按理说我的代码应该每 5
  • npm 运行如何工作?

    当我打字时会发生什么npm run
  • 在 UNIX 中删除相同的文件

    我正在处理大量 30 000 个 大小约为 10MB 的文件 其中一些 我估计 2 实际上是重复的 我只需要为每个重复的对 或三元组 保留一个副本 您能建议我一种有效的方法吗 我正在unix上工作 您可以尝试使用此代码片段在删除之前先获取所
  • 检查 Bash 数组中是否存在元素[重复]

    这个问题在这里已经有答案了 我想知道是否有一种有效的方法来检查 Bash 数组中是否存在元素 我正在寻找类似于我可以在Python中做的事情 例如 arr a b c d if d in arr do your thing else do
  • awk 返回两个变量

    现在这就是我正在做的事情 ret ls la awk print 3 9 usr echo ret awk print 1 fil echo ret awk print 2 问题是我没有运行ls我正在运行一个需要时间的命令 因此您可以理解其
  • PHP exec rm -Rf 不适用于子目录

    我试图删除特定文件夹中的所有内容 但它似乎不会影响子文件夹 但它应该 因为 bash 命令是从控制台执行的 system rm Rf some dir 该命令中不需要星号 如果要与文件一起删除目录 请同时删除斜杠 留下斜杠将删除文件 但保留
  • Grep 递归和计数

    需要在具有大量子目录的目录中搜索文件内的字符串 我在用着 grep c r string here 我怎样才能找到总数量 如何仅输出至少具有一个实例的文件 使用 Bash 的进程替换 这给出了我认为是您想要的输出 如果不是 请澄清问题 gr
  • 将变量插入 sh 脚本命令[重复]

    这个问题在这里已经有答案了 bin sh f set proj dir OutputDir for projname in lib proj1 proj2 do mv scripts projname BYTECODE proj dir s
  • 从命令行更改 konsole 选项卡标题并使其持久?

    如何更改 konsole 选项卡标题 默认情况下 它设置为 u n 所以它总是自动改变 我可以这样设置 qdbus org kde konsole KONSOLE DBUS SESSION setTitle 1 My Title 但是一旦您
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • sed 和 rev shell 命令转换为 Python 脚本 [重复]

    这个问题在这里已经有答案了 有一个shell命令 我正在尝试将逻辑转换为python 但我不知道该怎么办 我需要一些帮助 shell命令是这样的 cd tests src main test ls find name vrlp while
  • 无法从 bash 脚本使用 nvm

    我正在尝试编写一个 shell 脚本来自动设置我的开发环境 安装 python nvm node mongo 等 我正在使用 nvm 来安装 Node js 它告诉您关闭并重新打开终端以开始使用 nmv 命令 我尝试获取 bashrc 和
  • HBase Shell 日志记录

    使用 HBase shell 时 我收到大量日志记录 包括 INFO 和 DEBUG 消息 虽然这对于学习 HBase 内部结构来说很有趣 但它非常冗长并且可能会掩盖输出 我尝试过以多种不同的方式更改日志记录级别 包括所描述的here ht
  • 将 apache documentRoot 设置为符号链接(以便于部署)

    我们正在寻找一种将 Apache DocumentRoot 指向符号链接的方法 例如 文档根目录 var www html finalbuild Finalbuild 应该指向 home user build3 之类的文件夹 当我们将新构建
  • Bash 目录上的 For 循环

    快速背景 ls src file1 file2 dir1 dir2 dir3 Script bin bash for i in src do if d i then echo i fi done Output src dir1 src di
  • Unix shell脚本找出脚本文件所在的目录?

    基本上我需要使用与 shell 脚本文件位置相关的路径运行脚本 如何将当前目录更改为与脚本文件所在的目录相同 在 Bash 中 你应该得到你需要的东西 如下所示 usr bin env bash BASEDIR dirname 0 echo

随机推荐

  • 累加值,例如通过扫描,但可以随着时间的推移重置累加器

    我有一个可观察的 obs1 它代表一段时间内的数字流 我需要累积这些数字的总和并逐步发出它 即 很长一段路要说我需要使用scan操作员 然后是第二个 Observable obs2 代表某种 重置时间 换句话说 当obs2发出 我必须重置我
  • Opengl 深度缓冲区和剔除

    OpenGL 中使用背面剔除和深度缓冲区有什么区别 背面剔除是指 OpenGL 确定哪些面背对观看者 因此不可见 想象一个立方体 无论你如何旋转立方体 三个面始终是不可见的 找出这些面是哪些面 将它们从要绘制的多边形列表中删除 这样您就将绘
  • 打开 QDialog 并保存最后的状态

    我正在尝试打开一个QDialog from a QMainWindow 并且在关闭 QDialog之后 如果我需要再次打开它 它必须打开并显示与我关闭它时相同的信息 这是代码QMainWindow class A QMainWindow d
  • 从 Azure DevOps Python Artifacts feed 进行 pip 安装不起作用

    当我尝试从 Azure DevOps Artifacts feed 安装包时 出现错误 Looking in indexes https pypi org simple https pkgs dev azure com company co
  • 如何将可变数量的参数传递给 lambda 函数

    我正在尝试将可变数量的参数传递给 lambda 函数 lambda 函数中接受可变数量参数的原型是什么 我应该写一个命名函数而不是 lambda 吗 std once flag flag template
  • 适用于所有 Android 设备的 Android Badger

    你好 我有 android 应用程序 我需要将 badger 添加到应用程序启动器我在互联网上搜索并找到了这个库 compile me leolin ShortcutBadger 1 1 4 aar 可以工作 但不适用于我在三星和 HTC
  • C 中的简单 lua_yield 无法从 Lua 正确恢复

    我刚刚开始深入研究 lua 协程与 C 我对我认为应该是我能想到的最简单的例子有疑问 The C include
  • Table2excel 插件不起作用

    我正在开发一个仪表板应用程序 我想实现 下载表为 xls 功能 在此链接上您可以看到表格的样子仪表板 http pasteboard co p82eqze png 我找到了一个library https github com rainabb
  • 按 lubridate 日期 %within% 间隔连接数据框

    我一直在练习和学习使用包含以下内容的列来处理 R 数据框lubridate数据类型 例如我的示例问题其他问题 https stackoverflow com questions 51407177 r lubridate split dura
  • Hadoop start-all.sh错误:没有这样的文件或目录

    成功创建名称节点后 我在尝试启动名称节点时遇到了这个问题 对我来说 它似乎试图记录到一个不存在的文件 如何更改设置以将脚本日志定向到正确的目录 bash 3 2 start all sh starting namenode logging
  • 如何在 Docker 第 3 部分教程中使用curl -4 http://localhost?

    使用 Docker 教程我被困在这部分 https docs docker com get started part3 run your new load balanced app https docs docker com get sta
  • 读取 Hadoop ArrayWritable 中包装的值

    我是 Hadoop 和 Java 的新手 我的映射器输出文本和 Arraywritable 我在读取 ArrayWritable 值时遇到问题 Unbale 将 get 值转换为整数 附上映射器和减速器代码 有人可以帮我纠正我的减速器代码以
  • 计算 PHP 数组中的日期

    我有这个数组 Array 0 gt Array x gt 2016 04 19 1 gt Array x gt 2016 05 25 2 gt Array x gt 2016 05 26 3 gt Array x gt 2016 05 27
  • std::tuple 用于不可复制和不可移动的对象

    我有一门删除了复制和移动向量的课程 struct A A int a data a A std cout lt lt A lt lt this lt lt lt lt data lt lt std endl A A const obj de
  • Maven SCR 插件 - 不生成 OSGI-INF 文件夹

    我的 SCR 插件无法正常工作 我已经尽可能多地进行了搜索 但只找到了与我需要使用的结构不相似的示例 下面是 POM 的片段 这些几乎是 CQ 项目原型生成的默认值 所有依赖项都在那里 所以可能不是这样 这是构建的输出 SLF4J Fail
  • CodeIgniter 2.x 会话和 Internet Explorer

    我在网上阅读了大量有关 CodeIgniter 及其会话和 Internet Explorer 问题的文章 其中很多内容似乎都以会话名称为中心 名称中没有下划线 这些文章似乎都是针对 CI 1 x 的 CI还存在这个问题吗 我尝试删除下划线
  • 英特尔伽利略裸机 UART

    我想编写一些 hello world 程序裸机申请于英特尔伽利略木板 当然 使用 UEFI 打印文本 到 UART 1 效果很好 但我想 手动 访问 UART 而不需要 UEFI 的任何帮助 在 QEMU 中我的代码运行良好 h file
  • 如何将 Spark 数据帧转换为 Polars 数据帧?

    我想知道如何将 Spark 数据帧转换为 Polars 数据帧 假设我在 PySpark 上有这段代码 df spark sql select from tmp 我可以使用以下命令轻松地将其转换为 pandas 数据框 toPandas 极
  • 使用ionic 4,尝试在应用程序使用硬件后退按钮按下事件关闭之前向用户发出退出警报消息

    在我的最初阶段 我试图给出 退出应用程序 是 否 当用户从登录页面或主页 登录后 按下硬件后退按钮时发出警报 我面临的问题是 当我按下后退按钮时 退出警报消息会出现在每个页面上 而不仅仅是在登录或主页上 此外 无论我是否按警报框中的 否 选
  • 如何删除除包含 TRUNCATE - INSERT 的行之外的所有行

    我创建了一个脚本 将所有 PL SQL 文件格式化为一个具有值对的简单文件 它很难解释 我认为如果您只查看该文件会更容易 PROCEDURE VALIDA CAMBIO GPR TRUNCATE TMP MOD PVA INSERT TMP