次のファイルがあります。
ID_SOUR_CALENDAR BIGINT NOT NULL DEFAULT 0 COMPRESS 0 ,
UNIQUE PRIMARY INDEX ( CALENDAR_DATE );
ID ,
ID_SOUR ,
PRIMARY INDEX ( CALENDAR_DATE );
PRIMARYを含む行の前の行から「、」を「)」に変更したいと思います。
結果は次のとおりです。
ID_SOUR_CALENDAR BIGINT NOT NULL DEFAULT 0 COMPRESS 0 )
UNIQUE PRIMARY INDEX ( CALENDAR_DATE );
ID ,
ID_SOUR )
PRIMARY INDEX ( CALENDAR_DATE );
ベストアンサー1
使用GNU sed
:
sed 'N;s/,\(\s*\n.*PRIMARY\)/)\1/;P;D' file
ID_SOUR_CALENDAR BIGINT NOT NULL DEFAULT 0 COMPRESS 0 )
UNIQUE PRIMARY INDEX ( CALENDAR_DATE );
ID ,
ID_SOUR )
PRIMARY INDEX ( CALENDAR_DATE );
N
パターン空間に入力の次の行を読み取るか追加します。P
現在のパターンスペースに最初に含まれている改行文字を印刷します。D
パターンスペースから最大最初に挿入された改行文字を削除します。次のサイクルを開始しますが、パターン空間にまだデータがある場合は、入力から読み取りをスキップします。