【发布时间】:2021-08-26 19:18:43
【问题描述】:
使用 Mac OSX (iTerm2) 上的终端,除了 postgres 之外没有任何外部应用程序,我想在一个相当大 (52 MB) 的 pg_dump 数据文件上运行一些正则表达式查找/替换,因为它被导入到 PostgreSQL 数据库中。我需要在转储文件到达 PostgreSQL 之前执行此操作,因为我必须转换用于创建和修改表的传入 SQL 查询。
我用来导入数据的shell命令是:
psql MyDatabase < mydata.sql
有没有办法通过正则表达式查找/替换过滤器来管道数据?我可以使用 grep 之类的原生 Linux 命令行实用程序做点什么吗?
或者,我将如何批处理我的正则表达式并将它们应用到我的转储文件,然后将更改保存到新文件?
【问题讨论】:
-
现在的问题完全没用。说
regex find/replace什么?在这里度过了一段时间,您不知道[ mcve ] 是什么? -
@sjsam 我不明白你的意思。
-
请编辑问题,添加有关您要替换的
pattern和new pattern的信息。还可以考虑添加您可以使用的工具,例如sedawk等等。 -
@sjsam 我相信我达到了要点,即使用正则表达式在导入时从 pg_dump 文件转换数据。我什至列出了我正在使用的工具 - iTerm2 是一个 bash shell。
-
事实上,我并没有试图表现得非常严厉,但我只能从下面的答案中理解主要意图 - 即管道。也撤回我的反对票.. ;)
标签: bash postgresql psql