linuxsed

ファイルに別のファイルを差し込む

昨日、データベース定義からフィールド名を抜き出しましたが、これを応用するには他のファイルに差し込む必要があります。
例えば、triggerやviewなどの定義で省略できないけど、たくさんのフィールドを間違いなく書く必要がある場合です。(そもそも、書かなくてすむ方法があればよいのですが…)

こんなときに役に立つのがsedのrコマンドです。
指定した行数のあとに指定したファイルを差し込んでくれます。

下記の例は、特に意味のあるものではありませんがmail.templateの前文と末文の間にファイルを差し込んでいます。

$ sqlplus -S scott/tiger@XE @empddl.sql | tail -n +3 | head -n -1 | awk '{if (NR != 1) print a","; a=$1 } END {print a}' > tmp.txt
ksaito@oracle:~/tmp$ cat mail.template
こんにちは
さようなら
$ sed -e '2r tmp.txt' mail.template
こんにちは
EMPNO,
ENAME,
JOB,
MGR,
HIREDATE,
SAL,
COMM,
DEPTNO
さようなら
$
タイトルとURLをコピーしました