ダンプファイルファイル名の抽出

ダンプファイルファイル名の抽出

データベースの更新を自動化しようとしていましたが、IMPDPコマンドで使用するダンプファイルのファイル名を抽出しようとしている部分がブロックされました。

問題は、エクスポートにこのパラメータを使用することです。

dumpfile=dbname_env_date_%u.dmp と 16 度並列処理を使用すると、次の 16 個のファイルが生成されます。

dbname_env_date_01.dmp
dbname_env_date_02.dmp
.
.
.
dbname_env_date_16.dmp

私が望むのは、別の環境データベースをインポートするときにそのパラメータを使用できるように、この "dbname_env_date"を抽出することです。

私が今まで得たものは次のとおりです。

dump_filename=$(ls -tr *.dmp | tail -1)

これは私に次のようなものを与えます:

dbname_env_date_16.dmp

後で次のように使用したいと思います。

imdp \' / as sysdba \' dumpfile=${dump_filename}_u%.dmp

ベストアンサー1

tailを使用する必要はありません。 16個のファイルがすべてあることがわかります。

dump_filename=$(ls -t *_01.dmp | head -n 1)
dump_filename=${dump_filename%_01.dmp}
dump_filename="$dump_filename.dmp"

最初の行は最新のファイルの名前を取得し、*_01.dmp2行目はその_01.dmp名前からそのファイルを削除します。 3行目が追加されます.dmp

以下も使用できます。

dump_filename=$(ls -t *_01.dmp | head -n 1 | sed -e 's/_01\.dmp/.dmp/')

おすすめ記事