たとえば、
CREATE TABLE MWWDATA.ACK997 (
AKTYPE CHAR(2) DEFAULT '' NOT NULL ,
AKNUM CHAR(9) DEFAULT '' NOT NULL );
CREATE TABLE MWWDATA.APREIDEXC (
EMPLID NUMBER(15, 0) DEFAULT NULL );
私が望む出力は次のとおりです。
CREATE TABLE MWWDATA.ACK997(AKTYPE,ANUM);
CREATE TABLE MWWDATA.APREIDEXC(EMPLID);
ベストアンサー1
これsed方法
〜のようにsedほとんどの選択肢よりはるかに軽量で、別の解決策があります
sed -ne '
/CREATE/{h;d};
s/^ *\([^ ]\+\) .*\()\);\? *$/\1\2/;
ta;
s/^ *\([^ ]\+\) .*$/\1/;
H;
bb;
:a;
H;
x;
s/\n//;
s/\n/,/g;
s/ (/(/;p ;
:b'
これは次のように書くことができます。
sed -ne '/CREATE/{h;d};s/^ *\([^ ]\+\) .*\()\);\? *$/\1\2/;ta;
s/^ *\([^ ]\+\) .*$/\1/;H;bb;:a;H;x;s/\n//;s/\n/,/g;s/ (/(/;p ;:b'
これはあなたの例でレンダリングされます
CREATE TABLE MWWDATA.ACK997(AKTYPE,AKNUM)
CREATE TABLE MWWDATA.APREIDEXC(EMPLID)