提取文本( - 打开括号和) - 关闭括号

时间:2011-11-17 19:05:00

标签: bash unix

我需要在bash中从()之间的以下文字中提取字段。

案例1

create or replace
PROCEDURE "Procedure_Name"
(
field1 IN DATE,
field2 IN VARCHAR2,
field3 IN INTEGER
)

我需要以下输出:

输出1:

field1 DATE, field2 VARCHAR2, field3 INTEGER

输出2:

field1, field2, field3

案例2

create or replace PROCEDURE "Procedure_Name" (field1 IN DATE,field2 IN VARCHAR2,field3  INTEGER)

我需要以下输出:

输出1:

field1 DATE, field2 VARCHAR2, field3 INTEGER

输出2:

field1, field2, field3

1 个答案:

答案 0 :(得分:2)

输出1:

$ cat filename | tr '\n' ' ' | grep -o '\(.*\)'  | tr '()' '  ' | sed 's/[IN|OUT]//g' 

输出2:

$ cat filename | tr '\n' ' ' | grep -o '\(.*\)'  | tr '()' '  ' | sed 's/[IN|OUT]//g' | sed 's/[DATE|VARCHAR2|INTEGER]//g'