【发布时间】:2014-05-24 07:40:23
【问题描述】:
我正在尝试使用 pandoc 将 SQL 函数源代码转换为 html 文档。我有一个示例函数:
create or replace function test(a integer, b integer) returns integer as $$
declare
_c int;
_d int;
begin
/*Do some basic stuff
----------------------
Do some really basic stuff:
- this is a list
- this is a list */
if a = b then
_c:=a+b;
end if;
/*Do some more advanced stuff
----------------------------
Description of some advanced stuff */
if a <> b then
_d:=a*b;
end if;
return 1;
end;
$$ language plpgsql;
我在 cmets 中使用 markdown。要将整个文件转换为有效的降价语法,我需要:
- 在代码所在的每一行的开头添加空格
- 删除评论标签 (
/* */)
虽然在开头添加空格很容易:
$ sed 's/^/ /' function.sql
同时删除评论标签:
$ sed 's/\/\*//' function.sql
$ sed 's/\*\\//' function.sql
我不知道如何排除 cmets 所在的行。
输出应如下所示:
create or replace function test(a integer, b integer) returns integer as $$
declare
_c int;
_d int;
begin
Do some basic stuff
----------------------
Do some really basic stuff:
- this is a list
- this is a list
if a = b then
_c:=a+b;
end if;
Do some more advanced stuff
----------------------------
Description of some advanced stuff
if a <> b then
_d:=a*b;
end if;
return 1;
end;
$$ language plpgsql;
【问题讨论】:
-
不完全相关,但您可能对来自Stack Overflow Regular Expression FAQ 的答案感兴趣,列在“高级正则表达式-Fu”下:Get a string between two curly braces:
{...}。
标签: regex replace sed multiline pandoc