Oracle の DDL 置換に使った Perl ワンライナー。echo ワンライナーも混じってるけどw
- STORAGE句のINITIALの値を変更する。
perl -i.org -ple 's/STORAGE\((\s+)?INITIAL\s+[0-9]+/STORAGE\(INITIAL 1/gi' create_table.sql
- オブジェクトを作成する表領域を変更する。
perl -i.org -ple 's/TABLESPACE\s+\"[a-zA-Z_]+\"/TABLESPACE \"USERS\"/gi' create_table.sql
- 3つ以上の改行を2つにする。
perl -0 -i.org -ple 's/\n{3,}/\n\n/gi' create_table.sql
- 空行を「/」に置換する。
perl -i.org -ple 's/^$/\//gi' create_table.sql
- ファイルの末尾に「/」を追加する。
echo / >> create_table.sql
- 行頭のスペースを削除する。
perl -i.org -ple 's/^\s*//' create_table.sql
- 行末のスペースを削除する。
perl -i.org -ple 's/\s*$//' create_table.sql
- 行頭と行末のスペースを削除する。
perl -i.org -ple 's/^\s*//;s/\s*$//' create_table.sql